我有一个脚本可以成功扫描指定目录中的文件列表,将文件复制到目标文件夹,并生成源中找不到的所有文件的日志。我必须更改此脚本以包含net use
以映射网络驱动器。由于这样做,脚本不再像以前那样生成错误日志。
我对此非常陌生,无法找到有关为何可能发生这种情况的任何信息。有人可以帮忙吗?
@echo off
pause
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
net use U: \\abc\def
SET "src="U:\Source Folder""
SET "dst=C:\Destination Folder"
SET "file_list=C:\files.txt"
SET "out=.\errors.log"
echo > %out%
FOR /F "usebackq eol=| delims=" %%f IN ("%file_list%") DO (
rem just searching to find out existense of file
WHERE /Q /R %src% "%%f"
IF "!ERRORLEVEL!" == "0" (
FOR /F "usebackq eol=| delims=" %%s IN (`WHERE /R %src% "%%f"`) DO (
echo "%%s => %dst%\%%f" >> %out%
@copy /y "%%s" "%dst%\%%f"
)
) ELSE (
echo %%f >> %out%
)
)
答案 0 :(得分:0)
将echo %%f >> %out%
替换为set /p out=%%f
[编辑] 对不起,我误解了你的问题。
是否因为在所有驱动器路径集中都有两个引号?
如替换
SET "src="U:\Source Folder""
同
SET src="U:\Source Folder"