![]() |
Удалить несколько каталогов одной командой, не используя bat-ник
Как одной командой удалить несколько каталогов (как пустых, так и с файлами и подкаталогами), не используя bat-файл?
|
Nun-Nun, одной — никак. Но Вас, полагаю, интересует не «одной командой», а «одной строкой» — по аналогии с этим? Если так, то опишите условия исполнения — где и как именно Вы хотите сие использовать.
Общий принцип: Код:
for %i in ("FullPath1" "FullPath2" … "FullPathN") do @if exist "%~i\." rd "%~i" |
Цитата:
Код:
%comspec% /c start /min %comspec% /c ping -n 15 127.0.0.1 ^& del C:\Temp\amt3.log C:\Temp\swtag.log C:\Temp\Twain.log C:\Temp\Twain001.Mtx C:\Temp\Twunk001.MTX C:\Temp\Twunk002.MTX P.P.S. Пробовал вот такое, но оно не работает: Код:
RD /s/q Папка1 & RD /s/q Папка2 |
Цитата:
Цитата:
|
А могли бы пояснить, почему не работает конструкция типа:
Цитата:
|
Работает:
![]() Названия каталогов Папка1 и Папка2 не содержат пробельных символов? Каталоги Папка1 и Папка2 расположены в текущем каталоге для исполняющего данную команду процесса cmd.exe? |
Цитата:
Папка 1 - это: C:\Temp\88 Папка 2 - это: C:\Temp\99 Есть одна странность. Даже при попытке удаления только одной папки команда RD почему-то никак не хочет работать с ключами /S и /Q , без этих ключей работает нормально. :( |
Nun-Nun, где именно не работает Ваша конструкция — в ярлыке? А в «ручками» запущенном cmd.exe? Есть ли права на удаление самого указанного каталога и вложенных в него каталогов и файлов? Нет ли в момент удаления открытых каким-либо приложением файлов, находящихся в нём или в одном из вложенных каталогов?
P.S. У меня есть подозрение, что каталоги зовутся не C:\Temp\88 и C:\Temp\99, а как-то по-другому. |
Iska,
Выяснилось вот что: из реестра конструкция RD /s/q Папка1 & RD /s/q Папка2 срабатывает нормально, а когда запускаю её из-под TC - не работает. Добавление команд & , /s и /q делают RD неработоспособной. Цитата:
|
Nun-Nun, это из-за того, что в Total Commander'е используется внутренняя реализация ряда команд интерпретатора команд:
Цитата:
В Far Manager'е так же наличествует внутренняя реализация ряда команд интерпретатора команд, но, поскольку его парсер намного умнее, то он не страдает чрезмерным апломбом и, видя наличие & и параметров у команд rd, молча передает введённую строку на исполнение внешнему %comspec% (который не надо отдельно указывать в командной строке). Могу повторить скриншот :): ![]() |
Nun-Nun, Iska, А если так
Код:
CMD /A /C (Rd /Q /S "Z:\Tra La La") & (Rd /Q /S "Z:\Tru La La") |
Цитата:
P.S. Благодарю за помощь! Теперь причина проблемы понятна, решение найдено! Тему, наверное можно закрывать. |
Цитата:
|
Время: 18:46. |
Время: 18:46.
© OSzone.net 2001-