Benutzer mit den meisten Antworten
Verzeichnisnamen das Ende entfernen

Frage
-
Hallo liebe Community,
habe da einen Befehl:
‘Ich bin ein Beispiel 2015 das Ende’ -replace ‘(\d{4})(.*$)’,’$1' -replace ‘(\d{4})’,’ ‘
welche mir das Ende inclusive dem Jahr entfernt.
Meine Frage lautet nun wie kann ich dies bei einem Verzeichnisnamen anwenden? Oder gibt es da etwas besseres? Mein Befehl an dem ich herum doktere sieht so aus:
Get-ChildItem $path -Recurse -Force
# um das Verzeichnis aufzurufen
# und dann den Verzeichnisnamen bearbeiten mit
| rename-item -path $_.Fullname ($_.BaseName).Replace'(\d{4})(.*$)’,’$1' -replace (‘(\d{4})’,’ ‘)Diesen Namen würde ich dann übernehmen für die Dateien, welche sich in dem Verzeichnis befinden. Diese habe verschiedene Dateierweiterungen wie .nfo, .avi, etc.
Für Eure Mühe bedanke ich mich.
LG
Svensus
Antworten
-
Get-ChildItem $path -Recurse -Force | Rename-Item -path $_.Fullname ($_.BaseName -Replace '(^.*)(\s\d{4}.*$)','$1')
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Als Antwort vorgeschlagen brima Dienstag, 24. Februar 2015 15:52
- Als Antwort markiert Denniver ReiningMVP, Moderator Donnerstag, 26. Februar 2015 00:41
-
Hallo Peter Kriegel,
für Doppelposting bin ich eigentlich nicht. War ein Fehler von mir. Werde ich also nicht mehr machen.
Deswegen werde ich mal Deine richtige Lösung hier zusätzlich posten, damit auch andere davon einen Gebrauch machen können. Denn wir haben ja festgestellt (bzw. Du) dass noch foreach in dem Befehl fehlt. Der richtige Befehl lautet dann so:
$Path = 'C:\Users\Beispiel\' Get-ChildItem $path -Recurse -Force | ForEach-Object { Rename-Item -path $_.Fullname (($_.BaseName -Replace '(^.*)(\s\d{4}.*$)','$1') + $_.Extension) }
LG
Svensus
- Als Antwort markiert Svensus Sonntag, 1. März 2015 09:56
Alle Antworten
-
Get-ChildItem $path -Recurse -Force | Rename-Item -path $_.Fullname ($_.BaseName -Replace '(^.*)(\s\d{4}.*$)','$1')
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Als Antwort vorgeschlagen brima Dienstag, 24. Februar 2015 15:52
- Als Antwort markiert Denniver ReiningMVP, Moderator Donnerstag, 26. Februar 2015 00:41
-
Hallo Peter Kriegel,
für Doppelposting bin ich eigentlich nicht. War ein Fehler von mir. Werde ich also nicht mehr machen.
Deswegen werde ich mal Deine richtige Lösung hier zusätzlich posten, damit auch andere davon einen Gebrauch machen können. Denn wir haben ja festgestellt (bzw. Du) dass noch foreach in dem Befehl fehlt. Der richtige Befehl lautet dann so:
$Path = 'C:\Users\Beispiel\' Get-ChildItem $path -Recurse -Force | ForEach-Object { Rename-Item -path $_.Fullname (($_.BaseName -Replace '(^.*)(\s\d{4}.*$)','$1') + $_.Extension) }
LG
Svensus
- Als Antwort markiert Svensus Sonntag, 1. März 2015 09:56