我正在使用下面的代码传输文件,它显示文件的每次移动,1个文件移动,1个文件移动等等...但它没有显示在最后总计移动的文件数量?它正在为我的第一个代码工作甚至echo %%我被放置在下面放置的相同位置... 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
答案 0 :(得分:1)
变量%%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