다른 파일 이름의 일부와 일치하는 파일을 이동하는 스크립트

다른 파일 이름의 일부와 일치하는 파일을 이동하는 스크립트

다음과 같은 파일을 가져오는 스크립트를 작성하는 방법을 알아내려고 합니다.

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
    
  • 엑스복사

  • 리디렉션

관련 정보