raidman
Goto Top

Rename und if exist ergibt endlos loop

Hallo Leutz,

mit einer kleinen batch will ich in einem Verzeichnis auf eine Datei prüfen diese Datei umbenennen und dann erneut prüfen,
aber das endet in einer ungewollten Endlosschleife da nach dem

set verzeichnis=%~1
set Dateiname=%~2
set n=0

:again
if exist "%verzeichnis%%Dateiname%" (  
ren "%verzeichnis%%Dateiname%"  %n%%Dateiname%  
)

rem pause
rem 'ping -n 1 -w 1000 128.0.0.1 > nul  

if exist %verzeichnis%%Dateiname%" (  
set /a n=%n%+1
echo ~~ %n% ~~
goto :again 
) else ( 
exit
)

exit

leider ergibt das eine wunderbare "Rennschleife"

was muss ich ändern damit das zweite "if exist" richtig hinschaut
und merkt das die Datei umbenannt ist und nicht mehr existiert ?

Content-ID: 264071

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

Ausgedruckt am: 16.11.2024 um 11:11 Uhr

emeriks
emeriks 20.02.2015 aktualisiert um 13:54:08 Uhr
Goto Top
Hi,
"\" zwischen Verzeichnis und Datei ?

set verzeichnis=%~1
set Dateiname=%~2
set n=0

:again
if exist "%verzeichnis%\%Dateiname%" (  
ren "%verzeichnis%\%Dateiname%" %n%%Dateiname%  
)

rem pause
rem 'ping -n 1 -w 1000 128.0.0.1 > nul  

if exist %verzeichnis%\%Dateiname%" (  
set /a n=%n%+1
echo ~~ %n% ~~
goto :again 
) else ( 
exit
)

exit


E.
RaidMan
RaidMan 20.02.2015 aktualisiert um 13:59:56 Uhr
Goto Top
Hi

ja %1 endet mit "\"

das erste if exist tut ja richtig und die Datei bekommt die Nummer Vorangestellt

aber das zweite "if exist" glaubt auch immer noch das die %2 Datei existiert obwohl sie ja gerade umbenannt wurde ??

Gruß
RaidMan
emeriks
Lösung emeriks 20.02.2015 aktualisiert um 15:34:29 Uhr
Goto Top
Ah ja,
Da fehlt ein " !

Zeile 13

if exist "%verzeichnis%\%Dateiname%" (

E.
RaidMan
RaidMan 20.02.2015 aktualisiert um 14:18:38 Uhr
Goto Top
uhhhhh ähmm face-confused

Danke