删除 UNC 上超过 N 天的批处理文件

删除 UNC 上超过 N 天的批处理文件

我有一个宏,可以提取给定路径中超过 N 天的文件的数据。

识别后,我尝试运行批处理文件以删除相同日期规范的文件,但仍出现 UNC 错误?有什么建议吗?

错误是不支持 UNC 文件路径。我对此进行了尽可能多的研究,最一致的建议是使用 POPD 和 PUSHD,但我不确定它们如何应用于下面的网络驱动器。

代码:

SET log=%temp%\delete.log
SET target.dir= “\\network file path”

ECHO %date%-%time% - Files older than 6 Months that will be deleted>%log%

PAUSE

ECHO %date%-%time% - Deleting Files older than 6 months>>%log%
Forfiles /p %target.dir% /S /D -180 /M *.* /C “cmd /C Del @path”>>%log%

答案1

下面的代码片段可以完成这个工作:

SET "log=%temp%\delete.log"
SET "target.dir=\\network file path"

ECHO %date%-%time% - Files older than 6 Months that will be deleted>>"%log%"

PAUSE
2>>"%log%" pushd "%target.dir%"
>>"%log%" 2>&1 net use %CD:~0,2%
ECHO %date%-%time% - Deleting Files older than 6 months>>"%log%"
Forfiles /S /D -180 /M *.* /C "cmd /C >>""%log%"" 2>&1 Del @path"
popd

解释:

  • 使用语法模式定义变量SET "variable=string",然后使用双引号将它们引用为"%variable%"
  • 推高清:指定 UNC 路径时,PUSHD将创建一个临时驱动器映射,然后使用该新驱动器。
  • Forfiles/p如果未指定(搜索路径),则默认为当前文件夹。
  • 慢性阻塞性肺疾病POPD还将删除由创建的任何临时驱动器映射PUSHD
  • >>2>&1重定向

相关内容