Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell: Script läuft nur im Arbeitsverzeichnis

Mitglied: AnkhMorpork

AnkhMorpork (Level 2) - Jetzt verbinden

20.12.2013, aktualisiert 21.12.2013, 2074 Aufrufe, 12 Kommentare, 1 Danke

Hallo zusammen,

habe folgendes Script am Laufen (Dateien umbenennen):

01.
$Quelle="D:\Scripts\Test_RenFile\"
02.
$BasicName="Datei_"
03.
$Extension=".txt"
04.
$i=0
05.

06.
$Dateien = Get-ChildItem -path $Quelle *.txt
07.
foreach($Datei in $Dateien) {
08.
	$i++
09.
	$AktuellerName=$BasicName+"{0:000}" -f $i+$Extension 
10.
	Rename-Item -Path $Datei -NewName $AktuellerName   
11.
}
Das Script läuft korrekt durch - aber nur wenn es sich im selben Verzeichnis befindet, wie die Dateien, die umbenannt werden sollen.
Gibt es eine Möglichkeit, das auch aus einem anderen Verzeichnis anzustoßen?

Ist vielleicht trivial, aber mein Verhältnis zur PS ist noch sehr novizial.
Win 7 Pro 64 bit, PS 3.0

Gruß an alle

ANKH
Mitglied: Xaero1982
20.12.2013 um 18:58 Uhr
Nabend,

01.
Rename-Item -Path $quelle""$Datei -NewName $AktuellerName   
Die Zeile damit ersetzen und dann sollte es gehen.

Gruß
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.12.2013, aktualisiert 21.12.2013
Hallo ANKH,
so geht des:
01.
$Quelle="D:\Scripts\Test_RenFile"
02.
$BasicName="Datei_"
03.
$i=0
04.
$Dateien = Get-ChildItem -path "$Quelle\*.txt" -File
05.
foreach($Datei in $Dateien) {
06.
	$i++
07.
	$AktuellerName=$BasicName+"{0:000}" -f $i+$Datei.Extension 
08.
	Rename-Item -Path $Datei.Fullname -NewName $AktuellerName   
09.
}
$Datei.Fullname ist der volle Pfad zur Datei. Alternativ kannst du die Rename-Zeile auch so schreiben(ohne -path Parameter nur mit Übergabe des File-Objects):
Rename-Item $Datei -NewName $AktuellerName
Der Parameter -File bei Get-Childitem beschränkt die Rückgabe nur auf Dateien, es könnte ja ein Ordner z.B. Ordner.txt benannt sein, dieser würde dann fälschlich mit umbenannt werden (Achtung: Dieser Parameter funktioniert erst ab Powershell 3.0). Das Äquivalent dazu lautet:
$Dateien = Get-ChildItem -path "$Quelle\*.txt" | ?{!$_.PSIsContainer}
Grüße Uwe
Bitte warten ..
Mitglied: Xaero1982
20.12.2013 um 19:14 Uhr
Moin,

also zumindest unter Powershell v2 frisst er die Zeile nicht
01.
$Dateien = Get-ChildItem -path "$Quelle*.txt" -File 
Liegt an den " " und dem -File was er nicht kennt. Vielleicht ist es ja in der 3.0 anders. Installiere ich mal ...

Gruß
Bitte warten ..
Mitglied: colinardo
20.12.2013, aktualisiert um 19:21 Uhr
Zitat von Xaero1982:
Liegt an den " " und dem -File was er nicht kennt. Vielleicht ist es ja in der 3.0 anders. Installiere ich mal ...
Ja den Parameter kennt nur nur Powershell 3.0
alternative für Powershell 2.0:
$Dateien = Get-ChildItem -path "$Quelle\*.txt" | ?{!$_.PSIsContainer}
Bitte warten ..
Mitglied: Xaero1982
20.12.2013 um 19:18 Uhr
Okay. Na dann spar ich mir die Installation.

Gruß
Bitte warten ..
Mitglied: AnkhMorpork
20.12.2013 um 19:23 Uhr
Hallo Uwe,

wieder einmal Dank für deine Hilfe!

Werde das probieren - habe aber im Moment keinen Zugriff auf mein Script. Ich melde mich!

Gruß

ANKH
Bitte warten ..
Mitglied: AnkhMorpork
20.12.2013, aktualisiert um 19:31 Uhr
Hallo Xaero,

Test läuft ...demnächst ... Dank!

Gruß

ANKH

Edit: zu spät ...
Bitte warten ..
Mitglied: colinardo
20.12.2013, aktualisiert um 20:33 Uhr
Zitat von Xaero1982:
Rename-Item -Path $quelle""$Datei -NewName $AktuellerName
dann kannst du's auch direkt so schreiben:
Rename-Item -Path $quelle$Datei -NewName $AktuellerName  
Bitte warten ..
Mitglied: AnkhMorpork
20.12.2013 um 19:39 Uhr
Leute, you are klasse !!!

nur mal so ...

Gruß

ANKH
Bitte warten ..
Mitglied: Xaero1982
20.12.2013, aktualisiert um 20:07 Uhr
Mit der Powershell 2.0 funktioniert das wie ich es oben schrieb. MIt den "$variable" kommt er nicht klar, weil er das nicht als Variable erkennt. Daher klappt das da nicht. Wie das bei der 3.0 ist weiß ich nicht.

Stimm ich dir aber zu, dass deine Version die schönere ist

Gruß
Bitte warten ..
Mitglied: colinardo
20.12.2013, aktualisiert um 20:34 Uhr
Zitat von Xaero1982:
MIt den "$variable" kommt er nicht klar, weil er das
Das geht auch in Powershell 2.0, innerhalb von doppelten Anführungszeichen werden Variablen expandiert, wohingegen bei Benutzung von einfachen => '$Variable' keine Expansion stattfindet!
Will man auf eine Eigenschaft eines Objektes innerhalb von doppelten Anführungszeichen zugreifen muss man folgende Variante hernehmen:
"$($Variable.Eigenschaft)"
Probier mal dieses Beispiel:
01.
$Name = "Mustermann"
02.
echo "Max $Name"
Das geht 100% in PS2.0

Uwe

p.s. denke jetzt ist alles geklärt
Beitrag dann noch auf gelöst setzen.
Bitte warten ..
Mitglied: AnkhMorpork
21.12.2013 um 14:18 Uhr
Hallo,

vielen Dank an euch. Wieder was dazugelernt. Ich arbeite weiter ...
Wie Scripting Guy Ed Wilson sinngemäß sagte: Es ist leicht Powershell zu lernen, aber nahezu unmöglich, sie zu beherrschen.

In diesem Sinne ...

ANKH
Bitte warten ..
Ähnliche Inhalte
Windows Server
Ps1 Script lauft nicht
gelöst Frage von 131455Windows Server8 Kommentare

Hallo, führe ich Zeilen wie würde die eben als Aufgabenplanung gerne hinterlegen. Gruss Rainer

Batch & Shell
Script in Powershell
gelöst Frage von EverestBatch & Shell27 Kommentare

Hallo PS-Scriptler, hat jemand von euch ein Script, der bestimmte User (z.B. administrator) in der Domain ausließt, welcher angibt ...

Windows Server
PowerShell script Hilfestellung
Frage von ollip2016Windows Server2 Kommentare

Guten Tag Administrator-User, ich bin auf der Suche nach Hilfestellung für eine Powershell Skript, hier mal kurz eine Beschreibung, ...

Batch & Shell

PowerShell Script Daten aus einem anderen PowerShell Script übergeben

gelöst Frage von RikkijooeBatch & Shell5 Kommentare

Guten Abend Liebe Administratoren! Ich weiß nicht, wie ich den Titel anders formulieren soll als so. Meine Frage ist ...

Neue Wissensbeiträge
Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 1 TagPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 steht in Englisch bereit mit Unterstützung für Windows 10 1903 (May Update)

Information von VGem-e vor 1 TagSicherheits-Tools1 Kommentar

Moin Kollegen, Dann kommt wohl demnächst auch die deutschsprachige/europäische Version zur Auslieferung. Gruß VGem-e

Batch & Shell
PowerShell Konferenz - Videos online
Information von NetzwerkDude vor 1 TagBatch & Shell

Abend, die Tage werden Videos der Talks von der diesjährigen EU Powershell Konferenz hochgeladen, sind einige Interessante dabei: MFG ...

Windows Update

Windows 10 1903 Updates über Wsus erst nach Auswahl weiterer Produktkategorie

Information von Spirit-of-Eli vor 3 TagenWindows Update6 Kommentare

Moin, den Tipp habe ich hier noch nicht gesehen. Er adressiert all diejenigen, die Windows 10 1903 über einen ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Unerklärlicher Gestank im EDV-Raum - "neues" Gebäude und keine offenkundige Ursache feststellbar!
Frage von VGem-eErkennung und -Abwehr29 Kommentare

Moin Kollegen, ich habe seit heute Morgen das Problem, dass in unserem EDV-Raum ein total unerklärbarer Gestank herrscht! Ich ...

Verschlüsselung & Zertifikate
Bitlocker oder Veracrypt unter Win10? Was ist hinsichtlich Performance, Sicherheit, Backup und Kompatibilität besser?
Frage von PluwimVerschlüsselung & Zertifikate23 Kommentare

Guten Morgen, bei mir wird demnächst eine neue Platte fällig, weil ich mein Win7-System auf Win10 umstellen will. D.h. ...

LAN, WAN, Wireless
Warum ist die Datenübertragung per WLAN zu bestimmten Servern sehr langsam?
Frage von PluwimLAN, WAN, Wireless17 Kommentare

Hallo Netzwerker, beim Einrichten des Notebooks für einen Bekannten fiel mir auf, dass Downloads per WLAN teilweise extrem lahm ...

Router & Routing
Microsoft Server: Kopierlast auf bestimmte NIC legen für Backup
gelöst Frage von LollipopRouter & Routing15 Kommentare

Guten Tag Mit zwei Servern machen wir eine einfache Datenspiegelung als Teil unseres Backup-Systems. Dazu wünsche ich mir einen ...