|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить всё кроме заданной папки |
|
CMD/BAT - [решено] Удалить всё кроме заданной папки
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать При загрузке компа батник должен удалить всё из " C:\Temp " кроме папки " IE "
всё это в тихом и невидимом режиме , без подтверждений . Голова кипит второй день, помогите .... |
|
Отправлено: 23:17, 12-10-2011 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Нет, мне надо длинную строчку разделить на 3 строки, чтобы было удобно читать!!!
PS: Уточнил вопрос. |
Последний раз редактировалось Sisin, 14-03-2017 в 14:53. Отправлено: 14:47, 14-03-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Sisin:
@echo off set ^"sExcludeFilesOrFolders=^ "a" "bb" "cc cc"^ "dd dd" "vv vv"^ "gg gg"^" echo%sExcludeFilesOrFolders% :: или echo %sExcludeFilesOrFolders:~1% pause да, и больше топор не дам |
|
Отправлено: 16:20, 14-03-2017 | #12 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата alpap:
первая строка "a" "bb" "cc cc"^ обрабатывается, а далее ошибка... |
|
Отправлено: 16:26, 14-03-2017 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sisin, покажите Ваш код.
|
Отправлено: 16:54, 14-03-2017 | #14 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion rem Укажите местонахождение директории для очистки set sTargetFolder=C:\Новая папка rem Поддиректория (или файл), которая НЕ должна удаляться set "^sExcludeFilesOrFolders=^ "1" "2" "3" "4"^ "1.txt" "2.txt" "3.txt" "4.txt"^ "1.png" "2.png" "3.png" "4.png"^" echo%sExcludeFilesOrFolders% for /f "tokens=*" %%i in ('dir "%sTargetFolder%" /b /a:-d') do ( set /a bDelete = 1 for %%j in (%sExcludeFilesOrFolders%) do ( if /i "%%i" equ "%%~j" set /a bDelete = 0 ) if !bDelete! equ 1 del /f /q "%sTargetFolder%\%%i" ) for /f "tokens=*" %%i in ('dir "%sTargetFolder%" /b /a:d') do ( set /a bDelete = 1 for %%j in (%sExcludeFilesOrFolders%) do ( if /i "%%i" equ "%%~j" set /a bDelete = 0 ) if !bDelete! equ 1 rd /s /q "%sTargetFolder%\%%i" ) endlocal exit /b 0 |
Отправлено: 17:04, 14-03-2017 | #15 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Sisin,
вот эту часть скопипастите, у вас пробелы есть в конце строк (при использовании нормального редактора это видно сразу): и проверьте отдельно для начала, может отсюда вставляются, тогда надо убрать везде, особенно после крышек. @echo off setlocal enableextensions enabledelayedexpansion rem Укажите местонахождение директории для очистки set sTargetFolder=C:\Новая папка rem Поддиректория (или файл), которая НЕ должна удаляться set ^"sExcludeFilesOrFolders=^ "1" "2" "3" "4"^ "1.txt" "2.txt" "3.txt" "4.txt"^ "1.png" "2.png" "3.png" "4.png"^" echo %sExcludeFilesOrFolders:~1% pause и не забудьте ошибку исправить, если не будете копировать Цитата Sisin:
Цитата Sisin:
set "sTargetFolder=C:\Новая папка" - кавычки есть не просят, а пробел аукнется. |
||
Отправлено: 17:46, 14-03-2017 | #16 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Iska, Спасибо большое!
|
Отправлено: 11:31, 25-06-2018 | #17 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата Anonymоus:
|
|
Отправлено: 10:17, 30-06-2021 | #18 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать @echo off set "d=C:\Papka" :: Кроме файлов: set "f1=aaa.txt" set "f2=bbb.txt" :: Кромк папок: set "d1=dirA" set "d2=dirB" :: Период (дней) set dt=10 :: Файлы for /f "delims=" %%a in ('forfiles /p "%d%" /s /d -%dt% /c "cmd /c if @isdir==FALSE echo @path"^|findstr /v /c:"%f1%" /c:"%f2%"') do >nul 2>&1 del /q "%%~a" :: Папки for /f "delims=" %%a in ('forfiles /p "%d%" /s /d -%dt% /c "cmd /c if @isdir==TRUE echo @path"^|findstr /v /c:"%d1%" /c:"%d2%"') do >nul 2>&1 rd /s /q "%%a" pause& exit |
Отправлено: 19:19, 30-06-2021 | #19 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление по маске, кроме папки исключения. | serjei | Скриптовые языки администрирования Windows | 27 | 18-02-2012 03:42 | |
CMD/BAT - [решено] Как удалить все папки кроме папок с названием длиной в 14 символов? | yaoleg2 | Скриптовые языки администрирования Windows | 9 | 26-03-2011 03:49 | |
Любой язык - [решено] Вывод списка файлов и их размеров в байтах из заданной папки | Vadikan | Скриптовые языки администрирования Windows | 6 | 18-03-2011 23:16 | |
CMD/BAT - [решено] Удалить все файлы из папки кроме нужных | Sirimika | Скриптовые языки администрирования Windows | 16 | 12-11-2010 10:33 | |
Процессор загружается на 100%. Виснет всё кроме музыки. | Diagnos1990 | Непонятные проблемы с Железом | 7 | 09-02-2010 22:29 |
|