调用的批处理文件中不支持 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
的条目
批处理文件的目的是遍历一个目录,将修改日期在 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
的条目