다음과 같은 파일을 가져오는 스크립트를 작성하는 방법을 알아내려고 합니다.
img123
img123back
img124
img125
img125back
img126
img127
"뒤로"라는 단어가 있는 파일과 번호가 같은 파일을 모두 별도의 폴더로 이동해야 합니다. 결과의 예:
img123
img123back
img125
img125back
답변1
당신은 사용할 수 있습니다/f에 대해출력을 반복하기 위해디렉토리소스 디렉터리에 대한 명령입니다. 일부 조건부를 사용할 수 있습니다.만약에단일 문자열 "back"이 있는 파일이 존재하는지 확인하기 위한 논리 및 for 루프 변수 대체를 수행하고, 존재하는 경우 해당 파일과 그에 따라 문자열을 뺀 동일한 이름의 파일을 복사합니다.
@ECHO ON
SET "srcPath=C:\Source\Path"
SET "destPath=C:\Copy\Path"
SET "keyword=back"
FOR /F "TOKENS=*" %%A IN ('DIR /B /A-D "%srcPath%\*"') DO (
IF EXIST "%%~DPA%%~NA%keyword%%%~XA" XCOPY /Y /F "%%~DPA%%~NA%keyword%%%~XA" "%destPath%\" & XCOPY /Y /F "%%~FNXA" "%destPath%\"
)
PAUSE
EXIT
추가 리소스
- /F의 경우
- 디렉토리
일괄 대체(/?)
또한 FOR 변수 참조 대체 기능이 향상되었습니다. 이제 다음 선택적 구문을 사용할 수 있습니다.
%~I - expands %I removing any surrounding quotes (") %~fI - expands %I to a fully qualified path name %~dI - expands %I to a drive letter only %~pI - expands %I to a path only %~nI - expands %I to a file name only %~xI - expands %I to a file extension only
- 리디렉션