В настоящее время я работаю над своей первой младшей ИТ-позицией, и у меня возникают проблемы с простым командным файлом.Запланированная очистка папок - пакетный файл
По существу, файл запускается еженедельно через планировщик задач. Он удаляет файлы и папки из каталога сервера старше 8 дней. Также предполагается удалить пустые папки.
forfiles /p "P:\blahblah" /s /m * /d -8 /c "cmd /c del /Q /S /F /A @path"
cd /d P:\blahblah
for /f "usebackq" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"
REM robocopy "P:\blahblah" "P:\blahblah" /s /move"
Здесь есть две проблемы; Иногда файлы удаляются только несколько дней назад. Он не удалит пустые папки.
Файл написан старым младшим ИТ-специалистом и документации нет. Мое предположение заключается в использовании нескольких методов для обеспечения очистки (по иронии судьбы). Я искал google и вот мои текущие мысли по каждой команде.
1) forfiles - команда forfiles, кажется, написана правильно, и я не вижу никаких проблем с ней.
2) CD - достаточно
3 простых) для - не совсем уверен. Пакетные переменные являются новыми для меня, и я не уверен, что он работает правильно.
4) robocopy - я не смог найти экземпляр онлайн, где кто-то копирует каталог для очистки. Я также замечаю дополнительную цитату там, но я не уверен в ее некорректности. Эта линия особенно кажется странной для меня.
Обычно я пытаюсь проверить свое действие через что-то подобное, но это немного сложнее проверить быстро, так как мне нужно выяснить, удаляет ли он вещи в зависимости от даты календаря. Вот почему я здесь!
Я обещаю, что я бы не спросил, не проснулся ли я в Интернете за идею. Любая помощь будет очень признательна, и я хотел бы узнать немного больше о вышеуказанных командах!
Благодарим за помощь!
Ваша команда FOR выйдет из строя, потому что ей не хватает каретки, чтобы выйти из PIPE. Также команда FOR должна действительно использовать опцию delims, чтобы заставить ее не использовать какие-либо разделители. Вам также не нужно использовать опцию usebackq. Robocopy не выполняется, поскольку он закомментирован командой REM. – Squashman