我正在尝试使用以下脚本将文件从网络位置复制到本地计算机,但它给了我一条错误消息
不支持 unc 路径
剧本
SET DESTINATION=c:\temp\new
SET DATE_FROM=02/13/2019
SET DATE_TO=02/13/2019
> nul forfiles /P \\sdpw9123app\work\ActiveMQ\logfile /S /D +%DATE_FROM% /C "cmd /C if @isdir==FALSE 2> nul forfiles /M @file /D -%DATE_TO% && > con ( echo @path && copy /V @path %DESTINATION% )"
pause
我也尝试使用一些 Robocopy 命令,但也无法让它工作,但理想情况下,我想使用该forfiles
命令来执行复制操作。
答案1
问题似乎在于使用forfiles
命令,并且不支持 UNC 路径。您可以使用pushd
为您映射 UNC 路径,然后只需使用映射后的其余路径即可,\\servername\sharename
其中包含您需要针对其运行命令的文件夹。使用popd
命令断开使用该pushd
命令创建的任何临时映射驱动器。
脚本
SET DESTINATION=c:\temp\new
SET DATE_FROM=02/13/2019
SET DATE_TO=02/13/2019
PUSHD \\sdpw9123app\work
> nul forfiles /P \ActiveMQ\logfile /S /D +%DATE_FROM% /C "cmd /C if @isdir==FALSE 2> nul forfiles /M @file /D -%DATE_TO% && > con ( echo @path && copy /V @path %DESTINATION% )"
POPD
pause
澄清
而不是使用
forfiles /P \\sdpw9123app\work\ActiveMQ\logfile
- 在命令
PUSHD \\sdpw9123app\work
前使用forfiles
- 运行
forfiles
命令行forfiles /P \ActiveMQ\logfile
- 在命令
POPD
后面的行上使用forfiles
更多资源
答案2
%
在批处理文件中,引用变量时 需要使用两次,即%%DATE_TO%%
,而在命令行中只需执行一次。尝试修复该问题,然后查看将其粘贴到 cmd 中时上述内容是否有效。