특정 접두사가 붙은 파일을 제외한 폴더의 모든 파일 삭제

특정 접두사가 붙은 파일을 제외한 폴더의 모든 파일 삭제

응용 프로그램에서 자동 생성된 파일로 폴더를 채우고 있습니다. 거기에 csv 및 png 확장자가 생성되고 저장됩니다. 파일 이름이 "abc-"로 시작하는 특정 png 파일을 제외하고 폴더의 모든 파일을 삭제해야 합니다. 시스템은 Windows Server 2012 r2 상자이며 목표는 매일 밤 작업 스케줄러를 사용하여 배치 파일을 통해 이 작업을 수행하는 것입니다.

미리 작성된 몇 가지 다른 스크립트를 사용해 보았지만 접두사가 붙은 png 파일을 제외하지 않고 모두 제거하기만 했습니다. 이 문제를 어떻게 해결할까요?

답변1

파워셸을 사용해 볼 수 있나요? 다음과 같은 것 :

$path = "C:\site\temp"
gci -Path $path | ? {!($_.Name -ilike "abc-*.png")} | % { Remove-Item -Path $_.FullName }

답변2

Batch를 사용하면 다음과 같이 할 수 있습니다.

@Echo OFF 

For %%# In ("*.*") DO (
    If /I "%%~x#" EQU ".png" (
        (Echo "%%~n#"| Findstr "^abc-")1>nul 2>&1 || (
            Del /Q "%%~#"
        )
    )
)


Pause&Exit

확장자가 있는 모든 파일을 반복한 다음 파일 확장자가 ".png"인 경우 파일 이름이 "abc-"로 시작하는지 평가하여 제외합니다.

테스트하기 전에 폴더를 백업하십시오.

답변3

또한, 테스트하기 전에 작업 중인 폴더의 내용을 백업해 두시기 바랍니다.

1단계: 해당 폴더 아래에 하위 디렉터리를 만듭니다.
2단계: 저장할 파일을 해당 하위 디렉터리로 이동합니다.
3단계: 폴더에 남아 있는 모든 항목을 삭제합니다.
4단계: 하위 디렉터리의 파일을 다시 폴더로 이동합니다.
5단계: 하위 디렉터리를 삭제합니다.
6단계: 가지고 있는 것이 무엇인지 확인하십시오.

간단한 스크립트는 다음과 같습니다.

REM C:\SCRIPTS\MOVERPNG.CMD
C:
ECHO OFF
CLS
CD \SITE\TEMP 
MD BAR  
MOVE /y ABC-*.PNG \SITE\TEMP\BAR  
DEL /y *.PNG  
DEL /y *.CSV  
CD BAR  
MOVE *.PNG C:\SITE\TEMP 
CD ..  
RD /q BAR
ECHO MOVERPNG has completed.
DIR *.* /P /O:N 

관련 정보