我似乎無法找出做標題狀態的好方法。我需要將在各個子目錄中找到的所有文件移動到具有匹配的子目錄名稱的另一個目錄。我一直在使用的代碼是:將多個子目錄中的文件複製到具有匹配的子目錄名稱的另一個目錄
@echo off
IF EXIST path.txt del /f path.txt
:: Above line for test only
for /f %%i in ('DIR /a:d /b "C:\ProgramData\Test\WTM\Source"') do (
echo %%i >>path.txt
)
::Pull sub-directory name from working folder
for /f "delims=" %%a in ('DIR /s /a-d /b "C:\ProgramData\Test\WTM\Source"') do (
for /F %%b in (path.txt) do (
move /y "%%a" "C:\ProgramData\Test\WTM\Destination\%%b\*.*"
)
)
PAUSE
我所試圖做的是拉子目錄名稱(如一些可從不時目的地失蹤),找到所有的文件移動到源目錄中,然後使用先前拉取的子目錄名稱將文件移動到相應子目錄名稱下的目標目錄中。所以拉動
C:\ProgramData\Test\WTM\Source\123\123.txt,
C:\ProgramData\Test\WTM\Source\456\9681.txt,
C:\ProgramData\Test\WTM\Source\789\1941.txt,
etc...
和這些文件移動到
C:\ProgramData\Test\WTM\Destination\123\123.txt,
C:\ProgramData\Test\WTM\Destination\456\9681.txt,
C:\ProgramData\Test\WTM\Destination\789\1941.txt,
etc...
我的代碼永遠不會正確運行和錯誤取決於是我改變,但通常我不能讓%%b
爲子傳遞目錄名稱而不是%b
,或者我可以使用參數(設置set %%i = path
,然後用%%b
代替%path%
)使其工作,但是它只會將文件複製到最後一個子目錄,而不是所有這些文件都是由於我如何使用那裏的set
命令。
我需要一些指針,我似乎無法讓它做我想做的事。任何和所有的指針表示讚賞!萬分感謝!
'Source'(和'Destination')只包含一級子目錄嗎? – aschipfl
不知道移動部分有多重要(複製也可以)。無論如何,請嘗試查看xcopy和robocopy命令。最壞的情況下,你可以將他們的輸出重定向到一個文本文件並在之後刪除文件。 –