Ich habe versucht, ein Powershell-Skript (mein erstes) zu schreiben
- Analysieren Sie nur die Ordner in einem Verzeichnis
- Wählen Sie nur die Ordner aus, die einer bestimmten Namenskonvention entsprechen ("JAHRESZEIT").
- ändere die Reihenfolge der Elemente des Namens ('JAHRESZEIT')
Ich habe schließlich das Programm BulkRenameUtility verwendet, um dies mit dem regulären Ausdruck ^ (\ w +) (\ d +) zu tun und die Token-Reihenfolge auf $ 2 $ 1 zu ändern. Ich lerne jedoch immer noch Powershell und möchte dies auch ohne ein tun können externes Programm.
Um es noch einmal zu wiederholen, gehen Sie zu C: \ Users \ Test
gibt es Ordner und Dateien .. sind einige der Ordner mit den Namen Spring 2015, Fall 2014zum Beispiel. Andere Ordner haben jedoch Namen wie geogex. Dateien haben Namen wie ENG1A SPRING 2015.odtund untitled_0.odt.
Wie ändere ich nur die Namen der Ordner mit dem Namen "Frühling 2015" in "Frühling 2015", "Herbst 2014" usw.?
Ich konnte verwenden
gci | ? {$_.PSIsContainer} | select-string -pattern '\d+'
Um 1 und 2 zu erreichen, bleibe ich aber dabei, Teil 3 zu machen: Benenne tatsächlich um, indem du die Elemente des Namens umkehrst. Ich habe versucht, das Obige in eine Variable zu setzen, und zwar wie folgt:
gci | ? {$_.PSIsContainer} | select-string -pattern '\d+' | %{$data = $_.line; Write-Output "$data"};
Während die obigen Ausgaben genau die Ordner sind, die ich möchte, scheint das Array $ data nur die letzte Ausgabezeile zu enthalten. So dass:
gci | ? {$_.PSIsContainer} | select-string -pattern '\d+' | %{$data = $_.line; Write-Output "$data"};
$data
wird ausgeben:
test 123
test 321
test 321
Ich bin mir nicht sicher, ob dies überhaupt eine gültige Richtung ist.
Jede Hilfe wäre sehr dankbar.