2014-01-29 94 views
0

我有一個腳本,我試圖改變搜索給定路徑內的多個子目錄,然後將找到的文件複製到位置創建文件夾與從文件夾文件中複製文件運行。目前腳本可以工作,但是可以搜索子目錄,請如何更改我的腳本。批處理文件來搜索子目錄

@echo off 
set LIST= C:\batch\list.txt 
set FILESPATH="C:\Test" 
for %%i in ("%LIST%") do set DEST=%%~ni 
for /F "usebackq delims==" %%i in (%LIST%) do (call :COPY_FILES "%%i") 
:COPY_FILES 
xcopy /qv %FILESPATH%\%1 .\%DEST%\* 

我試圖改變該線

爲/ F 「有usebackq delims =」 %% i的( 'DIR/S/B 「%LIST%」')DO(撥打:COPY_FILES「 %%我「),但得到一個錯誤,無法找到文件list.txt。

謝謝

+0

您正在獲取目標文件夾的'c:\ batch \ list.txt'的最後一行。那是你想要做的嗎?將'/ s'添加到xcopy命令以包含子目錄。 list.txt中的 – foxidrive

+0

是腳本用於搜索指定文件夾C:\ Test的文件名列表。這工作正常,但我需要腳本搜索路徑C:\ Test內的所有子目錄。 – user3248629

+0

我不同意它在這種情況下正常工作。 '%dest%'被設置爲'%list%'中的最後一行的一部分或全部' – foxidrive

回答

0

測試:它只會將xcopy行打印到控制檯。

如果看起來不錯,那麼從xcopy行中刪除echo,並將其運行爲真實。

如果命令不正確,請提供一行樣本以查看哪個部分是錯誤的。

@echo off 
set "LIST=C:\batch\list.txt" 
set "FILESPATH=C:\Test" 
for /F "usebackq delims=" %%i in ("%LIST%") do (
    echo xcopy /s/h/k/f/c/q/v "%FILESPATH%\%%i" "%%~ni\" 
) 
pause 
+0

好吧我試過了你的版本,但是現在無法找到list.txt中列出的文件。 – user3248629

+0

C:\批次> list.bat 0文件(一個或多個) 0文件(一個或多個) 0文件(一個或多個) 未找到文件 - 247.LOG 0文件(一個或多個) 未找到文件 - 247.TXT 0文件 按任意鍵繼續。 這是錯誤 – user3248629

+0

嘗試上面的代碼 - 它會回顯命令行。請讓我看看其中的一個。 – foxidrive

相關問題