调用的批处理文件中不支持 UNC 路径

UNC Paths Not Supported in called batch file

批处理文件的目的是遍历一个目录,将修改日期在 x 和 y 之间的所有文件移动到一个临时目录(位于存档文件夹中),从临时目录创建一个 .zip,然后最后删除临时目录。

我是从一个批次调用一个批次。初始批次使用 pushd 检索网络路径,但是当调用下一个批次并使用 forfiles 将文件移动到存档中时,会抛出 UNC 路径错误。 "ERROR: UNC paths (\machine\share) are not supported."

两个.bat文件在共享网络的同一目录下。

我已经阅读了这个类似问题的其他答案,但是 none 的答案解决了我的问题。

第一个批处理文件:

@echo off
setlocal EnableExtensions
cls 
@pushd %~dp0

:firststep
........
code....
........
echo Calling...
CALL ArchiveTool.bat %MM% %yyyy% \riskview\EBSArchive
echo Press any key to process next directory...
pause >nul

至此一切正常。

失败批次:

@echo off
setlocal EnableExtensions
.......
Code...
.......
md %3\Archive\%1-%2
forfiles /P %3 /D +%1/1/%2 /C "cmd /c if /I @FDATE LSS %mm%/1/%2 move @file                
%3\Archive\%1-%2 >NUL & echo|set /p=."

目录创建成功,但是forfiles失败

UNC default paths are turned off by default as they used to crash older programs.[10]

The Dword registry value DisableUNCCheck at HKEY_CURRENT_USER\Software\Microsoft\Command Processor [10] allows the default directory to be UNC. CD command will refuse to change but placing a UNC path in Default Directory in a shortcut to Cmd or by using the Start command. start "" /d 7.0.0.1\C$ "cmd /k" (C$ share is for administrators).

来自我在 https://en.wikipedia.org/wiki/Batch_file#Setting_a_UNC_working_directory_from_a_shortcut

的条目