我在家里制作了这个批处理文件:
@echo off
set src_folder=E:\1
set dst_folder=E:\3
set file_list=E:\File-list.txt
if not exist "%dst_folder%" mkdir "%dst_folder%"
for /f "delims=" %%f in (%file_list%) do (
echo "No" | xcopy "%src_folder%\%%f" "%dst_folder%\"
)
但是当我试图在我的计算机上使用它时,它表示无法找到文件。 捕获的是什么? 首先,我尝试将它用于映射驱动器上的共享文件,因此我就是这样。但是我已经在工作中的多个工作站/计算机上尝试了它,并且其中一些工作站工作了。有人可以解释一下吗?
注意:
%~dp0
作为文件列表。答案 0 :(得分:0)
根据您的File-list.txt
仅包含filename.ext
类型的单个文件名(不允许使用路径,但允许使用空格):
@Echo Off
REM Place your source destination and file list paths below
REM Remember not to remove the closing double quotation mark
Set "srcDir=E:\1"
Set "dstDir=E:\3"
Set "lstTxt=E:\File-list.txt"
REM Exit the script if no source or destination
REM or if unable to change directory to that destination
If Not Exist "%srcDir%\" Exit/B
If Not Exist "%dstDir%\" MD "%dstDir%">Nul||Exit/B
CD /D "%dstDir%" 2>Nul||Exit/B
REM Copies any files within the file list existing in source
REM to the current directory which is the intended destination
For /F "UseBackQ Delims=" %%A In ("%lstTxt%"
) Do If Exist "%srcDir%\%%~A" Copy /Y "%srcDir%\%%~A">Nul
您的File-list.txt
可能如下所示:
file name.ext
another.txt
或者像这样:
"file name.txt"
another.ext