01MDM
сам почти ничего не понял, но все работает! спасибо
сам почти ничего не понял, но все работает! спасибо
необходимо удалить эти заполненные папки за исключением некоторых, названия которых известны
Цитата:необходимо удалить эти заполненные папки за исключением некоторых, названия которых известны
пример конкретный покажи
echo %name:bc1000=%Гут! Вот это самый правильный вариант!
В папке лежит множество папок и файлов с произвольными именами.
В тех папках - также множество папок и файлов с произвольными именами. И вот эти папки нужно удалить, но не все - а, например, кроме 3-х, названия которых известны.
P.S. Интересен также вариант с вышеуказанной задачей если понадобилось бы проделать аналогичные манипуляции, но уже с файлами.
пример конкретный покажи
fire4x как-то так
Код:@echo off
for /d %%a in ( * ) do (
for /d %%b in ( "%%~a\*" ) do (
if /i "%%~b" neq "folder1" if /i "%%~b" neq "folder2" if /i "%%~b" neq "folder3" echo rd /s /q "%%~a\%%~b"
)
)
В папке (например папка WINDOWS) лежит множество папок и файлов с произвольными именами.
В одной из тех папкок (например папка system32) - также множество папок и файлов с произвольными именами.
И вот эти папки (например подпапки в папке oobe) нужно удалить,
до списка из единственной - пример обратимо коцается так:
Код:@echo off
cd /d "c:\windows\system32"
for /d %%a in ( "oobe" ) do (
for /d %%b in ( "%%~a\*" ) do (
if /i "%%~nxb" neq "images" if /i "%%~nxb" neq "sample" echo rd /s /q "%%~b"
)
)
вроде сейчас печатает правильно...
Но вообще-то делать сдвоенный цикл для перебора папок в единственной указанной папке совершенно лишне, хватило бы постановки в формулировке "удалить все папки c:\windows\system32\oobe\*, имя которых не совпадает с заказанными вариантами" - решение существенно короче.
Цитата:P.S. Распиште пожалуйста каким образом это работает - какие конструкции за что отвечают.
для понимания каких строчек не помогает встроенный хэлп? for /? и if /?
А как задать удаление папок, названия которых не входят в перечисленные названия?выкусить слово echo перед rd - начнет удалять.
Ну вот, например, выражение, предложенное сначала "%%~b" сменилось на "%%~nxb" - какова их функциональность.какие-то проблемы дочитать до конца for /?
Есть одно НО: известно название папки "первого уровня" - system32, но не её РАСПОЛОЖЕНИЕ!!!ну хоть что-то о её расположении известно - от какого места её искать, на каком диске, в какой вложенности и на чьем вообще компьютере?
Просто нет времени вспоминать команды MS-DOS.а тут тебе не команды MS-DOS вспоминать надо, а читать хэлп по ключикам командной строки того проигрывателя, которым собрался проигрывать - чтоб он именно на второй монитор показывать стал.
Как сделать так, чтобы запускался видеофайл при старте ОС?проще всего сначала создать ярлык с нужными ключами запуска на рабочем столе, отладить, потом мышкой скопировать ярлык в кнопку Старт, в папку
проще всего сначала создать ярлык с нужными ключами запуска на рабочем столе, отладить, потом мышкой скопировать ярлык в кнопку Старт
fire4x
Вот более общий вариант:
Код:@echo off
for /d %%a in (*) do for /d %%b in (%%a\*) do findstr /i /c:"%%~nxb" folders.lst >nul || echo rd /s/q %%b
Список пропускаемых папок в файле folders.lst
Цитата:Есть одно НО: известно название папки "первого уровня" - system32, но не её РАСПОЛОЖЕНИЕ!!!
ну хоть что-то о её расположении известно - от какого места её искать, на каком диске, в какой вложенности и на чьем вообще компьютере?
а то ведь таких папок можно много найти, если везде что-то удалять - будет ой.
Есть одно НО: известно название папки "первого уровня" - system32, но не её РАСПОЛОЖЕНИЕ!!!
Т.е. батник кидается в папку с произвольным названием, которую в данном примере играет папка windows и от неё "танцует".
похоже не понимает что "считать" путь нужно из папки в которой лежит.
А как можно перечислить пропускаемые папки в самом батнике, ну чтобы одним файлом сделать?
Наверное как-то так:
Код:@echo off
for /d %%a in (%~dp0\*) do for /d %%b in (%%a\*) do findstr /b /i /c:"#%%~nxb" "%~0" >nul || echo rd /s/q %%b
goto:eof
#folder1
#folder2
> батник кидается в папку с произвольным названием, которую в данном примере играет папка windows и от неё "танцует"
Более чем странный подход — исходить из пути исполняющегося скрипта. Почему не от текущего каталога?
> путь к той папке, в которую он будет помещен, НЕИЗВЕСЕН
Я вам и говорю: так не делают.
Путь исполняемого файла за директорию над которой надо произвести к.-либо действия не принимают.
Подразумеваемой по-умолчанию директорией является текущая.
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
Предыдущая тема: зависает установка Windows XP: 39 минут