사무실이 아닌 파일로 넘치지 않도록 특정 확장자를 제외하고 폴더의 내용을 재귀 적으로 삭제해야합니다.
나는 이것을 시도했다 :
@echo off
SET ROOTDIR=E:\Testdel\
for /f %%F in ('dir %ROOTDIR% /b /a-d ^| findstr /vile ".xls .xlt .xlm .xlsx .xlsm .xltx .xltm .ppt .pot .pps .pptx .pptm .potx .ppam .ppsx .sldx .sldm .pdf .xls .doc .dot .docx. .html .docm .dotb .docb .tiff .jpg .png .cdr .cpt .psd"') do del "%%F"
그러나 오류를 출력합니다.
C : \ Users \ username \ New를 찾을 수 없습니다.
왜 그런지 아세요?
이는 기본 구분 기호가 delim=<tab><space>
파일 이름을 공백으로 분할하기 때문입니다. 또한 파일을 재귀 적으로 삭제하려면에 대한 /s
플래그 를 지정해야합니다 dir
. 이 시도:
@echo off
set ROOTDIR=E:\Testdel\
for /f "delims=" %%F in ('dir %ROOTDIR% /s /b /a-d ^|findstr /vile ".xls .xlt .xlm .xlsx .xlsm .xltx .xltm .ppt .pot .pps .pptx .pptm .potx .ppam .ppsx .sldx .sldm .pdf .xls .doc .dot .docx .html .docm .dotb .docb .tiff .jpg .png .cdr .cpt .psd"') do del "%%F"
참고 : Wikibooks-Windows 배치 스크립팅 : Switches 는 일반적으로 스위치가 단일 슬래시 뒤에 누적 될 수 없다고 언급합니다 . 또한 findstr
명령이 예외 이며 바로 가기로 /v /i /l /e
결합 할 수 있음 을 언급합니다 /vile
. 이것은 또한 여기의 순서가 중요하지 않으며 /vile
= /live
= 다른 모든 순서를 의미합니다 (이것은 Mofi 가 지적했습니다 ). 이를 지원하는 다른 명령이있을 수 있지만 예외이므로 모든 경우에 작동하고 혼동을 줄이므로 스위치를 분리하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다