
응용 프로그램에서 자동 생성된 파일로 폴더를 채우고 있습니다. 거기에 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