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

时间:2016-04-09 03:38:42

标签: batch-file cmd archive unc pushd

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

我正在批量调用批次。初始批处理使用pushd来检索网络路径,但是当调用下一个批处理并且forfiles用于将文件移动到存档时,将引发UNC路径错误。 "错误:不支持UNC路径(\ machine \ share)。"

两个.bat文件位于共享网络的同一目录中。

我已经阅读了这个类似问题的其他答案,但没有一个答案可以解决我的问题。

第一批文件:

@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失败。

1 个答案:

答案 0 :(得分:0)

  

UNC默认路径默认关闭,因为它们用于崩溃旧程序。[10]

     

HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor [10]中的Dword注册表值DisableUNCCheck允许默认目录为UNC。 CD命令将拒绝更改,但将默认目录中的UNC路径放在Cmd的快捷方式中或使用“启动”命令。启动“”/ d \ 127.0.0.1 \ C $“cmd / k”(C $共享给管理员)。

https://en.wikipedia.org/wiki/Batch_file#Setting_a_UNC_working_directory_from_a_shortcut

开始
相关问题