Команда для удаления файлов в 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
Другие вопросы по тегам