在Windows批处理编程中使用循环移动文件
我使用下面的代码来传输文件,它显示在文件的每次移动上移动了1个文件,移动了1个文件,等等…但它没有在最后显示移动的文件总数?它为我的第一个代码工作,甚至echo%%我被放置在与下面相同的位置…plz帮助在Windows批处理编程中使用循环移动文件,windows,batch-file,Windows,Batch File,我使用下面的代码来传输文件,它显示在文件的每次移动上移动了1个文件,移动了1个文件,等等…但它没有在最后显示移动的文件总数?它为我的第一个代码工作,甚至echo%%我被放置在与下面相同的位置…plz帮助 setlocal enabledelayedexpansion if exist C:\Hi\*.pdf (goto COPYFILES) else (goto NOFILES) :COPYFILES for /f %%i in ('DIR /b C:\Hi\*_*.*') do (
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
变量
%%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
你会选择使用PowerShell而不是cmd batch吗?你尝试过吗?嗨,Alex,它在我这边不起作用,没有显示输出,每次屏幕都消失,文件也没有移动。另外,我已经更新了我首先使用的代码。上一个错误上传。