Я недавно установил новый NAS и пытаюсь создать папку «Temp», как и раньше, в основном папку, которая используется для перемещения файлов в рабочее время, а затем удаляется каждую ночь.

Мои знания о пакетных файлах очень ограничены. Я нашел это на другом сайте, но не смог заставить его работать. Надеюсь, кто-то сможет объяснить, как я могу улучшить это или почему это не работает.

@echo off
rd "C:test" /F /Q

Просто чтобы сделать вещи немного сложнее, у меня есть подпапка с именем «Эта папка удаляется ежедневно - не хранить важные файлы».

Мне было интересно, возможно ли вообще удалить все файлы и подпапки в этой папке, но сохранить вышеуказанную подпапку?

Любая помощь могла бы быть полезна.

Джеймс

1 ответ1

1

Что касается вашего первого вопроса, я думаю, что вы хотите /S /Q, а не /F /Q, и строка ECHO OFF не нужна, вы можете просто предшествовать команде с @, что предотвращает вывод самой команды:

@RD "C:test" /S /Q

Это удалит тестовую папку, а также все ее содержимое. Он действует на тестовую папку в текущем местоположении C: (в соответствии с вашим примером).

Если вы хотите сохранить папку «test \This Share is Deleted Daily - Не хранить важные файлы», это должно сработать, однако вы должны указать полный путь дважды - я использовал% USERPROFILE% здесь):

FOR /F "usebackq delims==" %i IN (`dir /b /s "%USERPROFILE%\test"`) DO @IF "%~i" NEQ "%USERPROFILE%\test\This Share is Deleted Daily - Do Not Store Important Files" @DEL /S /Q "%i" 2>NUL

Конечно, вы должны быть очень осторожны с такими командами, так как есть большой шанс случайно стереть что-то полезное, или важное, или критическое.

Если вы хотите попробовать что-то более сложное, я предлагаю вам подумать об установке Cygwin, а затем о написании bash-скрипта для достижения вашей цели. Баш намного лучше, чем партия!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .