Stapel wird an das Ende eines Dateinamens vor der Erweiterung mit dem Befehl ren angehängt

728
Natalie

Ich möchte alle Dateien in einem Ordner mit unterschiedlichen Erweiterungen umbenennen, damit der Dateiname mit " _1" endet, während die vorhandenen Erweiterungen erhalten bleiben.

Ich habe versucht ren * *_1*, die letztere Instanz eines bereits vorhandenen Unterstrichs im selben zu ersetzen, um gleich zu sein _1. Ich habe es auch versucht ren * *_1.*, aber dies fügte _1dem Ende der Dateinamen hinzu.

Ich verwende die Befehlszeile (Eingabe von cmd aus der Ordnersuchleiste) in Windows 10.

1

1 Antwort auf die Frage

1
Pimp Juice IT

Sie können eine for- Schleife verwenden, um jede Datei in einem Verzeichnis zu durchlaufen und die Variablensubstitutionen einzeln anzugeben, um den Namen der Datei abzüglich der Erweiterung und der Dateierweiterung sowie des vorangehenden Punkts zu erhalten. Sie können diese verwenden und den _1String hinzufügen, um die erwartete Ausgabe für jede Datei iteriert abzurufen.

Im Wesentlichen das. . .

  • Iteriert alle *.*Dateien in einem bestimmten Verzeichnis (nicht rekursiv)
  • Verwendet Variablenersetzungen, um den Dateinamen ohne die Erweiterung und die Dateierweiterung separat / einzeln abzurufen
  • Verknüpft die Dateinamen ohne Erweiterung auf die _1Saite auf das Original „“ Erweiterung und übergibt diese per Datei als zweites Argument an den Befehl ren .

Befehlszeile

for %a in ("C:\path\*.*") do ren "%~a" "%~Na_1%~Xa" 

Batch-Skript

SET "Src=C:\path" SET "Str=_1" for %%a in ("%Src%\*.*") do ren "%%~a" "%%~Na%Str%%%~Xa" 

Weitere Ressourcen

ZUM

  • Variablensubstitutionen (FOR /?)

    Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:

    %~I - expands %I removing any surrounding quotes (") %~nI - expands %I to a file name only %~xI - expands %I to a file extension only 
  • Ren

  • Variable Substitutionen