我需要将某个文本文件中指定的某些文件移动到另一个不同文本文件中指定的目录。使用批处理命令。批处理将文本文件中指定的文件移动到文本文件提供的目录
我试过了。
@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循环,只是试图读取文件列表和呼应的文件名要容易得多,然后从那里建起来。 –