![]() |
Конструкция поиска и удаления
Не хочет работать вот такая конструкция:
Код:
cmd /c For /F "tokens=*" %%m IN ('Dir "%SystemDrive%\Documents and Settings" /S /B /AD ^| find /I "Удаляемая папка"') Do RD /S /Q "%%m" |
Во-первых, двойной символ процента в имени переменной разбора вместо одинарного. Во-вторых, кавычки.
Попробуйте так (я бы ещё заменил прямой путь на переменную окружения): Код:
cmd.exe /c "for /f "tokens=*" %i in ('dir /s /s /a:d "%AllUsersProfile%\.." ^| find.exe /i "Удаляемая папка"') do @rd /s /q "%~i"" |
Это смотря как запускать. Если из батника, то:
Код:
for /f "tokens=*" %%i in ('dir /b /s /ad "%SystemDrive%\Documents and Settings\Удаляемая папка"') do rd /s /q "%%i" PS. Зачем дергать find.exe? |
Цитата:
|
Foreigner,
Спасибо, конечно, но: Цитата:
Iska, Добавил кавычки - всё заработало! Огромное спасибо! |
Цитата:
Код:
dir /b /s /ad "С:\Папка с которой начинаем поиск\Искомая подпапка на любом уровне вложения" Пример выполнения: Код:
> dir /b /s /ad C:\Users\Dmitry\Downloads |
Foreigner,
Моя конструкция после добавления кавычек прекрасно заработала (впрочем, если запускать из батника, то работает и без кавычек, ну и, разумеется, без cmd). А с Вашим вариантом конструкции Цитата:
В моём случае "%SystemDrive%\Documents and Settings" - это место поиска, а "Удаляемая папка" - объект поиска. Это и логично и работоспособно. Код:
For /F "tokens=*" %%m IN ('Dir "%SystemDrive%\Documents and Settings" /S /B /AD ^| find /I "Удаляемая папка"') Do RD /S /Q "%%m" |
Цитата:
Код:
for /f "tokens=*" %%i in ('dir /b /s /ad "%SystemDrive%\Удаляемая папка"') do rd /s /q "%%i" Код:
e:\Temp 1>for /F "tokens=*" %i in ('dir /b /s /ad "c:\Users\Public\Sample Videos |
Цитата:
Как ни странно, но налицо какой-то "парадокс" или недокументированная возможность интерпретатора команд (системы или ещё не знаю чего). Ведь логичным будет указывать область, где должен выполняться поиск, и поиск должен выполняться именно в ней, а не за её пределами! И тем не менее, всё работает от обратного! Вы можете это пояснить? |
Время: 05:59. |
Время: 05:59.
© OSzone.net 2001-