净使用 - 导致Echo重定向失败

时间:2017-11-03 12:06:04

标签: batch-file cmd

我有一个脚本可以成功扫描指定目录中的文件列表,将文件复制到目标文件夹,并生成源中找不到的所有文件的日志。我必须更改此脚本以包含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%
    )
)

1 个答案:

答案 0 :(得分:0)

echo %%f >> %out%替换为set /p out=%%f

[编辑] 对不起,我误解了你的问题。

是否因为在所有驱动器路径集中都有两个引号?

如替换   SET "src="U:\Source Folder"" SET src="U:\Source Folder"