puscher
Goto Top

Ordner umbenennen langsamer

Hallo!


Ich brauche eine Batch die mir alle Ordner in einem bestimmten Pfad umbenennt (ein ".exe" muß an jedem Ordner dran)

Die passende Batch habe ich auch schon:

for /D %%f in (d:\tmp\*) do rename "%%f" "%%~nxf.exe"

Nun hab ich allerdings folgendes Problem, denn an manchen Ordnern führt er die Aktion doppelt aus, sprich
diese heißen *.exe.exe Wahrscheinlich läuft das ganze zu schnell durch. Wenn ich statt ".exe" z.B. ".testerxx" schreibe funktioniert alles reibunglos.


Gruß

Content-Key: 208722

Url: https://administrator.de/contentid/208722

Printed on: April 25, 2024 at 09:04 o'clock

Member: colinardo
colinardo Jun 27, 2013 updated at 08:26:49 (UTC)
Goto Top
Hallo Puscher,
das Phänomen kommt daher das während des Umbenennens für die Schleife quasi ein neuer Ordner hinzukommt der vorher noch nicht da war(Deswegen das doppelte .exe.exe). Das kannst du z.B. mit folgendem Script umgehen:

@echo off
set docpath=C:\Temp\target\*
for /D %%f in (%docpath%) DO @(
	echo "%%f"="%%~nxf.exe" >>rename.txt  
)
for /f "tokens=1,2 delims==" %%k IN (rename.txt) DO @(  
	rename %%k %%l
)
del /q rename.txt >nul

Grüße Uwe
Member: Puscher
Puscher Jun 27, 2013 at 08:34:31 (UTC)
Goto Top
danke funktioniert jetzt reibungslos!
Member: Endoro
Endoro Jun 27, 2013 at 08:36:19 (UTC)
Goto Top
Hallo,

mein Vorschlag:

for /f "delims=" %%f in ('dir /b /ad "d:\tmp\*"') do rename "%%~ff" "%%~nxf.exe"  

lg,
Member: colinardo
colinardo Jun 27, 2013 at 11:15:49 (UTC)
Goto Top
Noch zur Info: Bitte markiere den Beitrag als gelöst. Siehe dazu die FAQ
Merci