윈 도 우 dos batch 파일 문의드립니다.
2022.12.08 13:55
@prompt $s
@color 1f
@title *.bak plot.log *.dwl *.dwl2 파일 이 삭제 됩니다. ->C:
@setlocal enabledelayedexpansion
@echo 관리자권한 확인용 >R:\Temp\1\admin.confirm || @(
echo Set UAC = CreateObject^("Shell.Application"^) > "R:\Temp\1\admin.vbs"
echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "R:\Temp\1\admin.vbs"
"wscript.exe R:\Temp\1\admin.vbs" & del "R:\Temp\1\admin.vbs" & exit)
@del R:\Temp\1\admin.confirm
cls
cd /d C:\
del /f /a /q C:\*.bak plot.log *.dwl *.dwl2 *.err
cd /d %SYSTEMROOT%\Temp
del /f /a /q /s *.*
cd /d %userprofile%\Local Settings\Temporary Internet Files
del /f /a /q /s *.*
cd /d %userprofile%\AppData\Local\Microsoft\Windows\INetCache
del /f /a /q /s *.*
cd /d %SYSTEMROOT%\Prefetch
del /f /a /q /s *.*
cd /d %userprofile%\Recent
del /f /a /q /s *.*
cd /d "D:\#사용자#\Desktop"
del /f /a /q /s *.bak *.log *.dwl *.dwl2 *.err *.tmp
cd /d %userprofile%\Documents
del /f /a /q /s *.bak *.log *.dwl *.dwl2 *.err *.tmp
cd /d %userprofile%\Local Settings\Temp
del /f /a /q /s *.*
cd /d %userprofile%\AppData\Local\Temp
del /f /a /q /s *.*
컴퓨터의 불필요한 파일정리 배치 파일인데 가끔 d: DRIVER 전체를 지워버리는 경우가 발생하는데
원인이 무엇때문인지 알수있을까요?
혹시 DOS 에서 DEL 시 휴지통으가 가게도 가능할까요?
행복한 하루 되시길 바랍니다.
댓글 [12]
-
ViArPl 2022.12.08 14:45
-
내꼬 2022.12.08 15:18 pause
del /f /a /q C:\*.bak plot.log *.dwl *.dwl2 *.err
pause
cd /d %SYSTEMROOT%\Temp
pause
del /f /a /q /s *.*
pause
cd /d %userprofile%\Local Settings\Temporary Internet Files
pause
del /f /a /q /s *.*
스크립트 중간 중간에 실행 과정을 볼 수 있도록 하여 문제가 되는 부분 찾을 수 있어요
디버깅의 기초입니다.
찾아 보세요.
-
Yeh 2022.12.08 15:28
답변 감사합니다.
pause 로 해당 폴더에 이동했는지 보면 되겠네요..
확장자가 주어진곳은 상관없는데 *.* 은 너무 위험하네요..
그래서 Temp 폴더로 이동후 삭제하는 거였는데 이동 하지 못하고 *.* 을 지우는 것같습니다.
지금까지 계속 문제가 없었는데 오늘 다지워 버렸네요..
Temp 폴더는 폴더가 있는지 확인하고 *.* 을 지울수 있을까요
-
내꼬 2022.12.08 15:39 if exist "c:\temp" del c:\temp\*.* /s /d /q
세부적인 사항은 아래 링크 참조 하세요.
도스 배치파일 IF문, 디렉토리 존재여부 체크 방법; DOS CMD Batch, Is Dir Exist (mwultong.blogspot.com)
-
Yeh 2022.12.08 15:48
감사합니다.
Temporary Internet Files 폴더를 RAMDISK 로 이동했는데
cd /d %userprofile%\Local Settings\Temporary Internet Files
Temporary Internet Files 폴더가 없어 D:\ 에서 *.* 이 실행된것 같습니다.
원인은 알은것 같습니다. 감사합니다.
-
Yeh 2022.12.08 15:50
if exist 가 답인것 같습니다. 감사합니다.
-
Yeh 2022.12.08 15:55
if exist C:\TEMP\ (
echo OK! 그런 디렉토리가 있습니다
) else (
echo 에러, 그런 디렉토리는 없음
)
감사합니다.
-
위라이즈 2022.12.08 16:02
공백있으면 따옴표해주셔야 합니다.
예시로
cd "c:\my test\"
또는
del "c:\my test\*.*"
-
Yeh 2022.12.08 16:03
감사합니다.
-
네오이즘 2022.12.08 19:48
윗분들 말대로 해당 폴더가 없을 경우에 cd/d가 에러가 나면서 이동이 안되고 그래서 현재 폴더가 삭제가 됩니다.
가능하면 cd/d는 쓰지 마시고 del에서 상대경로를 사용하세요.
if exist "c:\temp" del c:\temp\*.* /s /d /q
제가 볼땐 이게 베스트...
-
Yeh 2022.12.08 20:21
감사합니다.
처음 시작할때 그렇게 했었는데 뭐가 안되서(지식부족으로)
exist 로 해결은 된것 같습니다
이문제로 인해 파일 그의 다 지워 버렸어요
다행이 이상한것같아서 취소해서 일부는 건졌습니다
감사합니다 -
Yeh 2022.12.08 22:46
move 111.txt $RECYCLE.BIN 이게 제일 빠르고 안전한데 휴지통이 안비워지네요...
폴드안에 휴지통 이름을 가져올수가 있을까요..
감사합니다.
del 명령어는 무조건 파일을 완전 삭제하기 때문에 별도의 프로그램을 써야 합니다.
검색해보니 몇가지 프로그램이 있기는 합니다만... https://superuser.com/a/481706에 따르면 'DeleteXP'가 제일 좋다고는 하는데, 공식 다운로드가 불가능합니다.
당장 사용할 수 있는 것은 'Recycle'이 유일합니다.
---
이와 별개로 D 드라이브의 내용이 모두 사라지는건 CD 명령어에서 무언가 문제가 생겼기 때문이 아닐까요? CD 후 1초 기다렸다가 현재 작업 디렉토리를 출력하게 하고 이게 맞는지 확인을 받은 후에 지우도록 하는 방법으로 디버깅을 하셔야 할 것 같습니다.