고객사 요구 사항
PC에 30일 지난 txt ppt hwp 다지워야함
근데 특정경로는 예외해야함 ㅅㅂ
@echo off
for %%I in (txt ppt hwp) do (
for %%D in (C:\deltest D:\deltest) do (
forfiles /P "%%~D" /S /M *.* /D -30 /C "cmd /c if not @path==\"%%~D\deltest\cdtest\" del @path"
)
)
잘지워지는데 D\deltest\cdtest\ 경로 파일들이 삭제 예외처리가 안된다 chatGPT한테 받은건데 안됨 ㅠ
특정경로 예외처리방법좀 알려도
안된다는게 아예 동작을 안한다는거냐 뭔 오류가 난다는거냐 아니면 분기문을 무시하고 파일을 다지워버린다는거냐
모르는 언어로 굳이 노력하지 말고 잘 아는 언어로 짜면 뚝딱이잖아 왜 이래
내가 개발자는아니고 엔지니어인데 ㅅㅂ 고객사에서 억지부려서 내가 짜보는중 내 pc로 테스트중이다라고 생각하고 봐줘 C:\deltest D:\deltest 경로에 txt ppt hwp 파일은 잘지워지거든? 요구사항대로 근데 특정경로에 txt ppt hwp는 지워지면 안되는데 D\deltest\cdtest 경로는 txt ppt hwp는 지워지면 안되는데 저대로 배치돌리면 지워지네
아니면 FOR문안에 30일체크하는거 상단에 분기문걸어서 해당경로냐 아니냐부터 따지게 만든다음에 DEL작업 하게해보던가
배치는 IF ELSE 분기없나?
ㅇㅇ ELSE 없뎅
하고싶은게 그러면 지정된 폴더(D:\deltest\cdtest) 안에 hwp, ppt, txt 파일들을 제외하고, 나머지 파일들 중 최근 30일 동안 수정되지 않은 파일들을 삭제해야 하는거지?
응 맞아!
지정폴더 제외(D\deltest\cdtest\) 30일 지난 hwp ppt txt 파일 찾아서 삭제
근데 %%I 요 변수는 쓰지도않으면서 왜 정의 한거지 이걸로 돌려보셈
set "TEST_DEL_DIR=D:\deltest\cdtest" set "FILE_TYPE=*.txt *.ppt *.hwp" for %%D in (C:\deltest D:\deltest) do ( for %%F in (%FILE_TYPE%) do ( forfiles /P "%%D" /S /M %%F /D -30 /C "[...] not @path==%TEST_DEL_DIR%\%%F del @path" ) )