Windows 用于将文件移动到指定文件夹的批处理文件

Windows 用于将文件移动到指定文件夹的批处理文件,windows,file,batch-file,Windows,File,Batch File,我需要使用一个简单的批处理文件将几个不同文件夹中的文件移动到一个公共文件夹中 我有一个名为“导出”的文件夹,文件需要放入其中。FileList包含要移动并保存到文本文件files.txt中的所有文件的列表。 使用了以下代码,但不起作用 set FIILELIST=C:\List\files.txt set FILESPATH=C:\ set DESTPATH=C:\Export\ for /f %%X in (%FIILELIST%) do call :COPY_FILES "%%X" got

我需要使用一个简单的批处理文件将几个不同文件夹中的文件移动到一个公共文件夹中

我有一个名为“导出”的文件夹,文件需要放入其中。FileList包含要移动并保存到文本文件files.txt中的所有文件的列表。 使用了以下代码,但不起作用

set FIILELIST=C:\List\files.txt
set FILESPATH=C:\
set DESTPATH=C:\Export\

for /f %%X in (%FIILELIST%) do call :COPY_FILES "%%X"
goto :eof

:COPY_FILES
for /r %FILESPATH% %%I in (%~1) do echo xcopy /qvs "%%I" "%DESTPATH%%%~pnxI"

此版本适用于更改的文件列表-检查后删除回声

@echo off
set "FILELIST=C:\List\files.txt"
set "FILESPATH=C:\"
set "DESTPATH=C:\Export\"
for /f "delims=" %%X in (' type "%FILELIST%" ') do echo move "%%X" "%DESTPATH%"
pause
对此进行一次测试:如果回声符合您的要求,请将其移除

@echo off
set "FILELIST=C:\List\files.txt"
set "FILESPATH=C:\"
set "DESTPATH=C:\Export\"

for /f "delims=" %%X in (' type "%FILELIST%" ') do (
for /r "%FILESPATH%" %%I in (%%X) do echo move "%%I" "%DESTPATH%"
)
pause

“不起作用”是什么意思?根本没有复制文件?错误的命运?复制了错误的文件?有错误消息吗?没有复制任何文件。没有错误消息,但没有输出。您应该显示文件列表文件。它会成功复制文件。。但是,它会创建失败的重复move语句。。在我的files.txt文件中,我只有两个文件名。它对每个文件执行move语句五次。原因是什么?您的文件列表要么有多个条目(我现在看到您只提到了两个文件名),要么树中有多个文件副本。这似乎是可能的原因。将
ECHO
留在那里,并检查列出的路径。这应该有助于澄清原因。现在似乎有一个问题。并非所有要移动的文件都是C:\。都是零散的。需要调整它以接受文件中文件的完整路径。TXT文件中是否有
驱动器:\path\filename.ext
的列表?