Команда для удаления файлов в 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
Каким-то образом мне нужно удалить файлы, которые находятся в общем пути сервера, с помощью пакетной команды. Любая помощь приветствуется.
2 ответа
Решение
отредактировано 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 и затем перейдет на него. Затем все операции выполняются на диске:\folder. В конце popd
удалит назначение диска.
При этом удаляются все файлы с именем, например "ms", и более года.
@echo off
set "year=-365"
PushD "\\SERVERNAME\FolderName" && (
"forfiles.exe" /s /m "*_ms_*" /d %year% /c "cmd /c del @file"
) & PopD