0

批处理文件的目的是遍历一个目录,将所有修改日期在 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 失败。

4

1 回答 1

0

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

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

从我在https://en.wikipedia.org/wiki/Batch_file#Setting_a_UNC_working_directory_from_a_shortcut的条目

于 2016-04-09T04:54:06.843 回答