2013-07-11 74 views
1

我需要將循環中提到的一組文件複製到另一個位置,並將每個文件複製到以文件名命名的目錄中。使用批處理文件複製文件

例如: 我需要將file1.txt從路徑ABC複製到DEF \ file1 \; 從路徑ABC到DEF \ file2 \

file2.txt我一直在嘗試使用下面的循環來實現同樣的事情。然而,我在做什麼似乎有一個語法錯誤。由於急於交付,我在發佈之前無法探索。我正在尋找並行的解決方案。請讓我知道下面

FOR %%file IN (de.txt en.txt es.txt fr.txt it.txt ja.txt nl.txt pt.txt zh_CN.txt) DO 
    SET name=%file%.* 
    echo f | xcopy /I /Y "C:\textfiles\%name%.txt" D:\textfiles\%name%\LanguageFile.txt 
DONE 
+0

實際的錯誤消息是否正在獲取祕密? – user93353

+0

:)此時%文件意外 – Darzen

+0

我從來沒有在窗口循環中看到DONE字 –

回答

3

的代碼示例問題命令行

for %f in (de.txt en.txt es.txt fr.txt it.txt ja.txt nl.txt pt.mo zh_CN.txt) do echo xcopy "C:\textfiles\%~nf.mo" "D:\textfiles\%~nf\%~nf.mo" 

或批處理文件試試這個

for %%f in (de.txt en.txt es.txt fr.txt it.txt ja.txt nl.txt pt.mo zh_CN.txt) do echo xcopy "C:\textfiles\%%~nf.mo% "D:\textfiles\%%~nf\%%~nf.mo" 
+0

感謝Preet Sangha。這對我來說很完美:) – Darzen

0
@ECHO OFF 
SETLOCAL 
FOR %%f IN (de.txt en.txt es.txt fr.txt it.txt ja.txt nl.txt pt.txt zh_CN.txt) DO (
    ECHO ECHO f bar xcopy /I /Y "C:\textfiles\*%%f*" u:\textfiles\%%~nf\LanguageFile.txt 
) 
GOTO :EOF 

只需echo上課的命令被執行。如果正確,請將ECHO f bar更改爲f|以實際複製

+0

我有時在'xcopy'之前看到'echo f |'並且不知道它應該做什麼。 – Endoro

+1

@endoro它將'f'回覆給xcopy問題'文件或目錄'。有一個選項可以自動回覆「目錄」,但是在標準Micro $ oft時尚中,沒有人回覆'file'。當然,如果目的地終止'\',那麼假定目的地是指定目錄內的匹配名稱文件。 – Magoo