您好我尝试了以下命令删除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的共享路径中的文件。任何帮助表示赞赏。
答案 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