我需要將某個文本文件中指定的某些文件移動到另一個不同文本文件中指定的目錄。使用批處理命令。批處理將文本文件中指定的文件移動到文本文件提供的目錄
我試過了。
@echo off
echo.
REM check if file is there
if exist K:\file_sync_diff\FileNameList.txt goto Label 1
REM display error
echo Can not find the File Name List
echo.
echo.
Pause
goto :eof
:Label 1
REM display that the file in the last check was found
echo found FileNameList.txt
REM check if file is there
if exist K:\file_sync_diff\FileDumpText.txt goto Label 2
REM display error
echo Can not find File Dump Text File
echo.
echo.
Pause
goto :eof
:Label 2
REM display that the file in the last check was found
echo found FileDumpText.txt
REM check if file is there
if exist K:\file_sync_diff\DirectoryNames.txt goto Label 3
REM display error
echo Can not find Directory Names Text File
echo.
echo.
Pause
goto :eof
:Label 3
REM display that the file in the last check was found
echo found DirectoryNames.txt
REM for loop to filter through every line in a file
echo.
for /f %%i in (K:\file_sync_diff\FileNameList.txt) do call :Sub %%i
goto Label 4
goto :eof
:Label 4
REM display message of the file being moved
echo.
echo Moving %1
REM copy the file just made to a directory with a name supplied in a text file
for /f %%i in (K:\file_sync_diff\DirectoryNames.txt) do call :Sub 2 %%i
echo.
goto :eof
:Sub
echo Writing %1
REM copy the contents of FileDumpText.txt to the file that was passed in the last method
type K:\file_sync_diff\FileDumpText.txt >> %1.txt
goto :eof
:Sub 2
REM moves the file to the directory supplied by label 4.
move /y %1.txt %1
echo.
goto :eof
內容的DirectoryNames.txt
K:\file_sync_diff\cat
K:\file_sync_diff\dog
K:\file_sync_diff\333
這不是問題FileNameList.txt
red
orange
purple
內容,但FileDumpText.txt
測試文字的內容傳送到文件
more text 1
more text 2
more text 3
這些目錄確實存在於K:\file_sync_diff
文件夾中。
謝謝你的幫助。
最終的結果應該與red.txt以下 目錄裏面的貓所有的FileDumpText.txt的內容裏面 目錄狗orange.txt裏面所有的FileDumpText.txt的內容裏面 目錄333與所有的FileDumpText.txt內容purple.txt裏面裏面
這將使要解決的問題,如果你刪除了所有多餘的代碼,並將其簡化爲一個for循環,只是試圖讀取文件列表和呼應的文件名要容易得多,然後從那裏建起來。 –