batchfile met for/do loop

Status
Niet open voor verdere reacties.

erbez

Gebruiker
Lid geworden
23 dec 2011
Berichten
12
Ik heb regelmatig een lijst bestanden van de vorm 'Familienaam-yyyymmdd.csv'
die moeten hernoemd worden naar 'yyyymmdd.csv'.
Ik heb dit gevonden:

for %%f in (Familienaam*.csv) do call :newname %%f
goto label1
:newname
set file=%1
rename %1 %file:~12%
:label1

Dit doet wat ik verwacht.
Ik zou echter na de rename nog een commando willen uitvoeren, maar dat wordt telkens mee herhaald in de loop. Het lukt me niet om met dit commando "uit de loop te treden" (zet bvb een pause onder label1 en je stelt vast dat telkens gepauzeerd wordt per te hernoemen file. Iemand een idee?
 
Heeft u al geprobeert om een Y/N command erin te steken? Zodat je de loop kan onderbreken.

Code:
pause
set /p var=Wilt u verder gaan?(Y/N)

IF '%var%' == 'Y' GOTO newname

IF '%var%' == 'N' GOTO quit

Zou dit niet werken in u geval? Ikzelf ben niet zo zeker dat de command helemaal juist is maar je kan het zeker en vast via deze methode gebruiken ;).
 
Laatst bewerkt:
Beste Xelle,
Het is de bedoeling dat die batchfile automatisch opstart met taakplanner (scheduler) en dus ook dat ie zou werken zonder tussenkomst van de gebruiker.
Alvast bedankt voor de reaktie!
 
Beste erbez,
Dus eigenlijk moet u nog commands vinden die bijvoorbeeld na checkt of er nog bestanden zijn met het woord "Familienaam" in. Zoniet dat hij de batchfile beëindigt?
 
Verplaatst van XP--->>>Overige Programmeertalen
Graag even opletten in welke sectie je plaatst.
 
Xelle,
Nee, alle files worden mooi hernoemd. Nadien moet ik er een ander freeware programma op los laten (dat automatisch berekeningen en grafieken aanmaakt) en ik had gehoopt dat in één batchfile te fiksen...
 
Bedankt RogerS, hij doet het!
Blijkbaar is zelfs dat 'gelabel' niet nodig, want zo werkt het ook:
for %%f in (F*.csv) do call :newname %%f
c:\progs\batch1.bat
:newname
set file=%1
ren %1 %file:~12%
 
die goto is wel nodig. je loop wordt nu `1 keer teveel uitgevoerd
 
RogerS,
Dus zou hij, na het uitvoeren van batch1.bat terugkeren naar :newname? Ook al is het geen call?
Ik ga het eens uittesten. Alleszins bedankt voor de moeite!
Erbez
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan