Пакетный файл для автоматического удаления указанных папок из дерева

Я пытаюсь написать простой инструмент для удаления ненужных файлов Mac из системы Windows, однако у меня возникают проблемы, поскольку указанная папка (.fseventsd) остается, что бы я ни делал. Ниже приведен командный файл, а особая проблема — это команда rmdir в разделе :.fseventsd.

rem @echo off
cls
cd \

:.fseventsd
echo Searching for '.fseventsd' folders.
rmdir /S /Q ".fseventsd" 2> nul
if errorlevel 1 echo No '.fseventsd' folders were found.
goto :.DS_STORE
if errorlevel 0 echo All '.fseventsd' folders have been deleted.

:.DS_STORE
echo.
echo Searching for '.DS_STORE' files.
del /s /q /f /a:rash .DS_STORE 2> nul
if errorlevel 1 echo No '.DS_STORE' files were found.
goto ._.*
if errorlevel 0 echo All '.DS_STORE' files have been deleted.

:._.*
echo.
echo Searching for '._.*' files.
del /s /q /f /a:rash ._.* 2> nul
if errorlevel 1 echo No '._.*' files were found.
goto END
if errorlevel 0 echo All '._.*' files have been deleted.
echo.

:END
echo All tasks have now been finished.
pause

Любая помощь будет принята с благодарностью.


person Pi Hard    schedule 26.11.2018    source источник
comment
Что происходит, когда вы запускаете rmdir /S /Q ".fseventsd" из командной строки?   -  person Squashman    schedule 26.11.2018
comment
Является ли папка локальным файловым пространством или подключенным + общим (предположительно как для macOS, так и для Windows)? Это может повлиять на ваш доступ к файлам.   -  person benc    schedule 26.11.2018
comment
Система не может найти указанный файл.   -  person Pi Hard    schedule 26.11.2018
comment
Определенно местный   -  person Pi Hard    schedule 26.11.2018
comment
Ожидаете ли вы, что команда RMDIR удалит папку, если она находится в подпапке любой папки в дереве каталогов? Если это правда, то вам нужно сделать это по-другому. Команда RMDIR не ищет каталог, который вы хотите удалить, в дереве. Он удалит папку только из текущего рабочего каталога.   -  person Squashman    schedule 26.11.2018
comment
@Squashman Да, это именно то, что я пытаюсь сделать - есть предложения?   -  person Pi Hard    schedule 26.11.2018


Ответы (1)


Вам нужно использовать цикл for /r, который перебирает подпапки следующим образом:

for /R "C:\path\you\want" %%A IN (.) do (
     if "%%A"=="Foldernameyouwant" rd Foldernameyouwant

Вы можете внести любые незначительные изменения в предоставленный код.

Надеюсь это поможет!

person double-beep    schedule 27.11.2018