Перемещение файлов с помощью цикла в пакетном программировании Windows - PullRequest
2 голосов
/ 20 июля 2011

Я использую приведенный ниже код для передачи файлов, при каждом перемещении файла он показывает, что 1 файл (ы) перемещен, 1 файл (ы) перемещен и т. Д. ... но в конце он не показывает общее количество файлов количество файлов перемещено? он работал для моего первого кода, даже эхо %% я был помещен в то же место, что и ниже ... plz help ...?

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

1 Ответ

1 голос
/ 20 июля 2011

Переменная %%i будет содержать только часть имени файла, поэтому вы пытаетесь

move C:\Hi\30072011.pdf 

вместо

move c:\hi\1000225013_30072011.pdf

Альтернатива:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...