Удалите все экземпляры файла acad.lsp на C: \, кроме - PullRequest
0 голосов
/ 17 августа 2011

Я использую следующий код для удаления всех экземпляров Acad.lsp, найденных на моем диске C: \, но я хочу сделать одно исключение, а именно: C: \ Autocad 2010 \ Support.

Какя могу достичь этого?

del "C:\ICT\acad.lsp" /q /a /s 

1 Ответ

1 голос
/ 17 августа 2011

Из командной строки вы можете использовать команду for командного файла (я предполагаю, что вы используете командную строку Windows или аналогичную здесь). Это мощная команда, которая позволит вам перебирать набор «вещей» - с правильными параметрами, эти «вещи» могут быть файлами.

Следующая команда при запуске в каталоге C:\ICT должна делать то, что вы хотите:

for /F "usebackq" %a in (`dir /s /b acad.lsp ^| find /v "C:\Autocad 2010\Support"`) do @echo %a

Обратите внимание, что я использую @echo здесь, чтобы вы могли проверить, что результаты соответствуют ожидаемым, прежде чем изменить @echo на del.

Если вы хотите поместить это в пакетный файл, вы должны изменить %a на %%a.

Небольшое объяснение того, что происходит:

for /F "usebackq" %a in (...) запускает команду, которая находится между обратными кавычками, и запускает команду после do для каждого полученного элемента. Команда в моем примере выше делает рекурсивный dir для файла acad.lsp и помещает его через команду find, чтобы удалить тот, который вы хотите сохранить. Остальные файлы - те, которые вы хотите удалить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...