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

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

Ответить
Настройки темы
CMD/BAT - [решено] Хочу спросить, как сделать так чтобы скрипт в папке удалял все файлы...

Пользователь


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

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


Изменения
Автор: turbolover
Дата: 26-09-2016
Хочу спросить,как сделать так чтобы скрипт удалял все файлы в папке, а етого нетрогал: ( FXSAPIDebugLogFile.txt ).

Отправлено: 18:18, 26-09-2016

 

Ветеран


Contributor


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

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


Цитата turbolover:
Хочу спросить »
- хотите-спрашивайте, в чём затруднение? Если на файле и в корне диска нет особых параметров доступа, то
Код: Выделить весь код
@Echo Off
Set "MyFile=Z:\Kuku\FXSAPIDebugLogFile.txt"

Call :Clear "%MyFile%"
GoTo :Eof

:Clear
If Exist %1 (
	Move %1 "%~d1\" >nul
	If Exist "%~d1\%~nx1" CD /D "%~dp1" && RD /s /q "%~dp1" 2>nul 
	Move "%~d1\%~nx1" %1 >nul  
) Else (
        cls
	Echo File %1 not Exist
	pause
)
Вы должны указать полный путь к Вашему файлу, скрипт переместит его в корень диска, очистит папку, в которой он находился (будут удалены все файлы и подпапки в папке, где находился Ваш файл, невзирая на атрибуты "только для чтения", "системный", "скрытый"), затем вернёт Ваш драгоценный файл назад.
Вариант будет работать медленнее, но указанный файл временно перемещаться не будет
Код: Выделить весь код
@Echo Off
Set "MyFile=Z:\Kuku\FXSAPIDebugLogFile.txt"

Call :Clear "%MyFile%"
GoTo :Eof

:Clear
	pushd "%~dp1"
	attrib -r -s -h /S /D
	attrib +r %1
	del /Q "%~dp1*.*" >nul 2>nul
	attrib -r  %1
	FOR /F "usebackq delims=" %%i IN (`Dir /B /A:D %~dp1 2^>nul`) DO Rd /s /q "%~dp1%%i"
	popd
Здесь Ваш драгоценный файл не перемещается, ему устанавливается атрибут "только для чтения", затем все остальные файлы и подпапки удаляются, а у Вашего файла снимается атрибут "только для чтения"
Еще медленнее, но атрибуты драгоценного файла никак не меняются
Код: Выделить весь код
@Echo Off
Set "MyFile=Z:\Kuku\FXSAPIDebugLogFile.txt"

Call :Clear "%MyFile%"
GoTo :Eof

:Clear
	FOR /F "usebackq delims=" %%i IN (`Dir /B /A:-D %~dp1 2^>nul`) DO (
		If /I Not %1=="%~dp1%%i" attrib -r -s -h "%~dp1%%i" &DEL "%~dp1%%i"
	)
	FOR /F "usebackq delims=" %%i IN (`Dir /B /A:D %~dp1 2^>nul`) DO attrib -r -s -h "%~dp1%%i" &Rd /s /q "%~dp1%%i"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 26-09-2016 в 22:37.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:39, 26-09-2016 | #2



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

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


Пользователь


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

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


megaloman!
Это не-драгоценный файл, а файл Факсов/печати.
Атрибуты тут не поможет а сам файл всегда занят системой, и перемещать его не получится. Его при удалении других файлов просто надо пропустить, и не трогать.
P.s. Файл обитает здесь: (%Temp%). Его удаляет только програмка: "Unlocker".

Последний раз редактировалось turbolover, 02-10-2016 в 21:35.


Отправлено: 15:57, 02-10-2016 | #3


Ветеран


Contributor


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

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


turbolover, если файл всегда занят системой, то нет смысла писать батник, хватит команды из командной строки.

RD "%Temp%" /S /Q

Но если это папка %Temp%, то наверняка там останутся еще какие-то файлы, занятые системой, и стандартными командами их не удалить.
Даже не подозревал, что этот файл у меня тоже присутствует. И указанная команда его удалить не в состоянии, как я и говорил.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 03-10-2016 в 05:02.


Отправлено: 23:23, 02-10-2016 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Bat, который бы удалял все файлы, кроме созданных в начале каждого месяца. Tyamich Скриптовые языки администрирования Windows 10 29-07-2016 17:10
CMD/BAT - [решено] Как здеать так чтобы скрипт искал файлы созданные в конкретной дате? ufooo Скриптовые языки администрирования Windows 1 01-05-2016 20:31
Доступ - Как сделать так, чтобы все программы открывались от имени администратора? Twix1124 Microsoft Windows 8 и 8.1 10 23-04-2012 11:15
CMD/BAT - чтобы батник автоматически удалял бы все подкаталоги, размер которых makc2364 Скриптовые языки администрирования Windows 1 19-12-2011 12:09
Интерфейс - Как создать ярлык (или скрипт), чтобы выдавал результат поиска в заданной папке? DIMM DDR Microsoft Windows 2000/XP 1 01-10-2010 01:43




 
Переход