Flyt filer ved hjælp af sløjfe i Windows Batch Programmering

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger nedenstående kode til at overføre filer, det vises på hver bevægelse af fil, som 1 fil (er) flyttet, 1 fil (er) flyttet osv. ... men det viser ikke i slutningen det samlede antal filer flyttet? det arbejdede for min første kode selv echo \%\% jeg blev placeret på samme sted som placeret nedenfor ... plz hjælp ...?


setlocal enabledelayedexpansion
if exist C:Hi*.pdf (goto COPYFILES) else (goto NOFILES)

:COPYFILES
for /f \%\%i in ('DIR /b C:Hi*\_*.*') do (
    echo \%\%i
    set fn=\%\%i
    set fn=!fn:~11,8!
    move C:Hi\%\%i E:!fn!
)
echo complete

:NOFILES
echo There are no files to move

Bedste reference


Variablen \%\%i vil kun indeholde del af filnavnet, så du forsøger at


move C:Hi30072011.pdf 


i stedet for


move c:hi1000225013\_30072011.pdf


Alternativ:


setlocal enabledelayedexpansion
if exist C:Hi*.pdf (goto COPYFILES) else (goto NOFILES)

:COPYFILES
for /f \%\%i in ('DIR /b C:Hi*\_*.*') do (
    echo \%\%i
    set fn=\%\%i
    set fn=!fn:~11,8!
    move C:Hi\%\%i E:!fn!
)
echo complete
goto:eof

:NOFILES
echo There are no files to move