2015-04-29 96 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 

資源(必讀):