用于删除UNC路径中的文件的命令

时间:2014-02-05 11:51:43

标签: batch-file unc

您好我尝试了以下命令删除UNC路径中的文件

set folder="\\SERVERNAME\Publish" 
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

但我得错误说:

UNC paths are not supported. Defaulting to Windows Directory

不知何故,我需要使用batch命令删除驻留在Server的共享路径中的文件。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:9)

已编辑 2015-09-16 - 原始答案仍在底部

重新格式化代码,以避免在映射失败时删除不需要的文件夹。只有pushd成功执行删除才会执行。

set "folder=\\SERVERNAME\Publish" 
pushd "%folder%" && (
    for /d %%i in (*) do rmdir "%%i" /s /q 
    popd
)

原始回答:

set "folder=\\SERVERNAME\Publish" 
pushd "%folder%"
for /d %%i in (*) do rmdir "%%i" /s /q 
popd

pushd将在unc路径上创建驱动器映射,然后更改为它。然后,所有操作都在drive:\ folders下。最后popd将删除驱动器分配。

答案 1 :(得分:1)

这会删除所有名称如“ ms”且超过一年的文件。

@echo off
set "year=-365"
PushD "\\SERVERNAME\FolderName" && (
  "forfiles.exe" /s /m "*_ms_*" /d %year% /c "cmd /c del @file"
) & PopD