Wie lösche ich einen Teil eines Dateinamens für einen Stapel von Dateien in Windows 8.1?

Wie lösche ich einen Teil eines Dateinamens für einen Stapel von Dateien in Windows 8.1?

Ich habe viele Dateien in einem Ordner, aber sie beginnen alle mit einer Zahlenreihe und sind durch ein "_" vom eigentlichen Dateinamen getrennt.

Zum Beispiel:

123123123_Dateiname.txt

456456456_Dateiname2.txt

789789789_Dateiname3.txt

Ich kann mir vorstellen, dass Sie eine Art Befehl ausführen können, der die Zeichen vor dem „_“ und das „_“ selbst entfernt.

Jede Hilfe wird sehr geschätzt!

Antwort1

Wenn Sie mit PowerShell nicht vertraut sind, können Sie sich kostenlose Dienstprogramme ansehen, beispielsweise die folgenden: http://www.bulkrenameutility.co.uk/Download.php

Antwort2

Wenn Sie nur die Zeichen für eine Auflistung entfernen möchten, können Sie Folgendes in eine Batchdatei einfügen und das entsprechende Verzeichnis anstelle von ersetzendirname

for /f "tokens=2 delims=_" %%G in ('dir /b dirname') do @echo %%G

Das dir /berzeugt eine Verzeichnisliste im einfachen Format (ohne Überschrifteninformationen oder Zusammenfassung). Das delims=_gibt an, dass der Unterstrich als Trennzeichen verwendet werden soll, und das tokens=2gibt an, dass Sie wissen möchten, was nach dem Unterstrich steht. SieheFÜR/Ffür eine ausführlichere Erklärung zur Verwendung FOR /Fin einer Batchdatei.

Wenn Sie die Dateien jedoch ohne Zahlen und Unterstrich umbenennen möchten, haben Sie in Ihrem Beispiel zwei Dateien, die denselben Namen ergeben würden, filename2.txtwenn die Zahlen und der Unterstrich entfernt würden. Was möchten Sie in diesem Fall tun? Oder wollten Sie filename3.txt für die dritte Datei verwenden?

Wenn auf den Unterstrich ein eindeutiger Name folgt, können Sie die Dateien wie folgt umbenennen und das entsprechende Verzeichnis durchrelevantesVerzeichnis:

set dirname="relevantdir"
for /f "tokens=1,2 delims=_" %%G in ('dir /b %dirname%') do rename %dirname%\%%G_%%H %%H

Im obigen Fall ist das erste Token, %%G, das, was vor dem Unterstrich steht, und das zweite Token, %%Hdas, was nach dem Unterstrich steht. Ich habe sie für die Umbenennungsoperation wieder zusammengesetzt und ihnen das Verzeichnis vorangestellt, da der Umbenennungsbefehl die Syntax verwendet RENAME [drive:][path]filename1 filename2.

Wenn Sie nicht jede Umbenennungsoperation sehen möchten, während sie erfolgt, fügen Sie vor dem Befehl ein @echo offals erste Zeile in der Batchdatei ein.set

Antwort3

powershell    
ls "*_*.txt" | %{mv -confirm:$false $_.name ($_.name).split("_")[1]}

Unter Win8 sollte Powershell vorzuziehen sein.

Antwort4

PowerShell: Angenommen, alle Dateien im Ordner müssen umbenannt werden (wie OP andeutet):

$Folder = 'c:\path\to\folder'
gci $Folder | Rename-Item -NewName { $_.Name.Split('_')[-1] }

verwandte Informationen