Jump to content

Batch - Dateinamen anpassen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin michel0203,

 

falls die Anforderung auch umformuliert werden kann in "entferne alle Ziffern aus dem Dateinamen", sprich alle Dateinamen beginnen mit einer Buchstabenfolge, die erhalten bleiben soll gefolgt von einer Zahlenfolge, die entsorgt werden darf, dann reicht eine kleine Zeile vom CMD-Prompt aus.

Demo:


>for %i in (d:\temp\*.xyz) do @for /f "delims=1234567890" %a in ("%~ni") do @echo ren "%i" "%a%~xi"
ren "d:\temp\aaaaa11111.xyz" "aaaaa.xyz"
[/Code]

 

Aber so oder so wirst Du Schwierigkeiten bekommen, alle "noch nicht umbenannten" Dateien zu trennen von den bereits umbenannten, wenn Du diese Zeile mehrmals abfeuerst.

Um Fehler beim Rename zu vermeiden, solltest Du also ergänzen.

[Code].....do IF "%~ni" NEQ "%a" ren "%i" "%a%~xi"
[/Code]

...um zu vermeiden, dass versucht wird, "aaaaa.xyz" in "aaaaa.xyz" umzubenennen.

 

Grüße

Biber

Link zu diesem Kommentar

Hi Biber, danke erst einmal.

 

Funzt (noch) nicht.

 

Habe es mal in einen Batch gepackt:

 

for %%i in (D:\batches_scripte\Spielwiese\*.xyz) do @for /f "delims=1234567890" %a in ("%~ni") do @echo ren "%%i" "%a%~xi" ren "D:\batches_scripte\Spielwiese\aaaaa11111.xyz" "aaaaa.xyz"

 

Kann auch kein "Debug" einsehen, funzt einfach nicht.

 

gruß michel

Link zu diesem Kommentar

Moin michel0203,

 

im batch müssen alle "einfachen" Prozentzeichen vor Zählvariablen durch "doppelte" ersetzt werden.

for %%i in (D:\batches_scripte\Spielwiese\*.xyz) do @(
for /f "delims=1234567890" %%a in ("%~ni") do @(
echo Ist ren "%%i" "%%a%%~xi"
Echo Soll: ren "D:\batches_scripte\Spielwiese\aaaaa11111.xyz" "aaaaa.xyz"
))
[/Code]

 

Debuggen von Einzeilern ist ein bisschen tricky, aber wenn es bezahlt wird, mach ich Dir das auch ;-)

 

Grüße

Biber

Link zu diesem Kommentar

Hi Biber,

 

super, Danke!

 

-----------------------------------------------------------------------------------------------------

for %%i in (D:\batches_scripte\Spielwiese\*.xyz) do @(

for /f "delims=1234567890" %%a in ("%%~ni") do @(

ren "%%i" "%%a%%~xi"

))

-----------------------------------------------------------------------------------------------------

Der tut,

ich hoffe ich habe noch die Zeit über die Funktion hinaus das Dingen auch noch zu verstehen ;)

 

Gruß Micha

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...