Sie können [System.IO.Path] :: GetExtension die Erweiterung der Datei wie folgt erhalten:
$ext = [System.IO.Path]::GetExtension('AB1234.gif')
und Sie können die erste Alpha-Zeichen des Dateinamens mit der $matches
Variable erhalten wie folgt aus:
if ('AB1234.gif' -match '^\D*') { $first = $matches[0]; }
und Sie können Ihre neuen Dateinamen wie folgt aufbauen:
$first + '-0111-' + '1' + $ext
Sie können die ‚1‘ oben durch eine Variable ersetzen, die Sie durch Prüfen der existiert Eigenschaft wie folgt erhöht werden: mit $first + '-0111-' + $i + $ext
und Sie können Sie benötigen
$i = 1;
while (test-path ($first + '-0111-' + $i + $ext)) {$i++}
wenn diese Schleife abgeschlossen ist, müssen Sie den Dateinamen Hier können Sie die Datei mit Rename-File
umbenennen:
Rename-File 'AB1234.gif' ($first + '-0111-' + $i + $ext)
jetzt, wickeln, dass alle in einer Schleife und Sie sollten es haben:
dir | ForEach-Object { ... }
zum Testen, fügen Sie den Parameter -whatif
am Ende des Befehls Rename-File
hinzu und PS wird Ihnen sagen, was es tun würde, anstatt die Aktion auszuführen.
Dank, Marke
jetzt, dass Sie geklärt haben, was Sie suchen, können Sie die Antwort von zdan geschrieben verwenden. Von deinem ursprünglichen Post dachte ich, dass du etwas Komplexeres suchst. – Mark