Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить всё кроме заданной папки

Ответить
Настройки темы
CMD/BAT - [решено] Удалить всё кроме заданной папки

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


При загрузке компа батник должен удалить всё из " C:\Temp " кроме папки " IE "
всё это в тихом и невидимом режиме , без подтверждений .
Голова кипит второй день, помогите ....

Отправлено: 23:17, 12-10-2011

 

Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Нет, мне надо длинную строчку разделить на 3 строки, чтобы было удобно читать!!!

PS: Уточнил вопрос.

Последний раз редактировалось Sisin, 14-03-2017 в 14:53.


Отправлено: 14:47, 14-03-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Sisin:
Нет, мне надо длинную строчку разделить на 3 строки »
Ну ты посмотри, капризные мы какие:
Код: Выделить весь код
@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


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата alpap:
Ну ты посмотри, капризные мы какие: »
До этого я сам додумался, но так не срабытывает почему-то...
первая строка "a" "bb" "cc cc"^ обрабатывается, а далее ошибка...

Отправлено: 16:26, 14-03-2017 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Sisin, покажите Ваш код.

Отправлено: 16:54, 14-03-2017 | #14


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить 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
Благодарности: 564

Профиль | Отправить 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:
set "^ »
в моем куске исправлена

Цитата Sisin:
set sTargetFolder=C:\Новая папка »
кстати тоже не рисковал бы
set "sTargetFolder=C:\Новая папка" - кавычки есть не просят, а пробел аукнется.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:46, 14-03-2017 | #16


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Спасибо большое!

Отправлено: 11:31, 25-06-2018 | #17


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Anonymоus:
@Echo Off
:: Укажите местонахождение директории для очистки
Set Target=C:\Temp
:: Поддиректория (или файл), которая НЕ должна удаляться
Set NoDelete=IE
For /F "tokens=*" %%F In ('Dir %Target% /A:-D /B') Do (
If /I Not "%%F"=="%NoDelete%" (Del /F /Q "%Target%\%%F")
)
For /F "tokens=*" %%D In ('Dir %Target% /A:D /B') Do (
If /I Not "%%D"=="%NoDelete%" (RD /S /Q "%Target%\%%D")
) »
не силен в скриптах, от слова совсем, поэтому прошу помощи, нужно чтобы удалялись файлы и папки старше 10 дней кроме указаной

Отправлено: 10:17, 30-06-2021 | #18


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить всё кроме заданной папки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход