Показать полную графическую версию : [решено] Хочу спросить, как сделать так чтобы скрипт в папке удалял все файлы...
turbolover
26-09-2016, 18:18
Хочу спросить,как сделать так чтобы скрипт удалял все файлы в папке, а етого нетрогал: ( FXSAPIDebugLogFile.txt ).
megaloman
26-09-2016, 20:39
Хочу спросить » - хотите-спрашивайте, в чём затруднение? :) Если на файле и в корне диска нет особых параметров доступа, то @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"
turbolover
02-10-2016, 15:57
megaloman!
Это не-драгоценный файл, а файл Факсов/печати.
Атрибуты тут не поможет а сам файл всегда занят системой, и перемещать его не получится. Его при удалении других файлов просто надо пропустить, и не трогать.
P.s. Файл обитает здесь: (%Temp%). Его удаляет только програмка: "Unlocker".
megaloman
02-10-2016, 23:23
turbolover, если файл всегда занят системой, то нет смысла писать батник, хватит команды из командной строки.
RD "%Temp%" /S /Q
Но если это папка %Temp%, то наверняка там останутся еще какие-то файлы, занятые системой, и стандартными командами их не удалить.
Даже не подозревал, что этот файл у меня тоже присутствует. И указанная команда его удалить не в состоянии, как я и говорил.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.