2015-04-29 97 views
0

这是我的代码基础上的文件名部分从一个目录的文件复制到其他:尝试使用批处理脚本

@ECHO OFF 

SET PATH1=C:\Users\Honey\Desktop\a\ 
SET PATH2=C:\Users\Honey\Desktop\b\ 

PUSHD %PATH1% 

for /f "tokens=1*" %%a in ('dir /b /a-d "BESTPOST_Reporting_*_*.txt"') do (XCOPY %%a %%b %PATH2% /Y) 


popd 

它给了我下面的错误,当我运行它通过命令行: “的语法该命令不正确“

有什么建议吗?

+0

'DIR/b'只产生一个标记,所以我敢肯定'%% b'将是e空字符串。你期望在'%% b'中看到什么?另外,您是否可以确认在'for'之外使用'dir'语句会产生预期的输出? –

回答

0

开始下一个代码,看看for循环效应(S):与

xcopy "%%~a" "%path2%\%%~a" /Y

@ECHO OFF 

SET "PATH1=C:\Users\Honey\Desktop\a" 
SET "PATH2=C:\Users\Honey\Desktop\b" 

PUSHD %PATH1% 

for /f "delims=" %%a in ('dir /b /a-d "BESTPOST_Reporting_*_*.txt"') do echo %%~a 

popd 

然后,你可以用echo xcopy "%%~a" "%path2%\%%~a" /Y取代echo %%~a命令,并最终(不早于调试) 但是,所有的任务可以用

@ECHO OFF 

SET "PATH1=C:\Users\Honey\Desktop\a" 
SET "PATH2=C:\Users\Honey\Desktop\b" 

PUSHD %PATH2% 

Copy /B /Y "%PATH1%\BESTPOST_Reporting_*_*.txt" 

popd 

资源(必读):