
특정 폴더에 특정 형식의 여러 PDF 파일이 있고 해당 특정 파일의 경우 bat 파일을 사용하여 중간 숫자를 자르고 새 이름을 가진 대상 폴더로 이동해야 합니다.
세부 사항
소스 폴더:
C:/roger/brawn
목적지:
D:/var/lag
파일 형식:
eAWI_12345678_89101112_01Mar2018.pdf
원하는 결과
다듬어야 해요89101112
원본 소스 파일 이름에서 다음 결과를 얻습니다.eAWI_12345678_01Mar2018.pdf
이 파일 이름 번호 형식은 응용 프로그램의 변수를 사용하여 동적으로 생성됩니다.
답변1
당신은 사용할 수 있습니다/F에 대해루프를 실행하고 파일 이름의 밑줄 문자를 구분 기호로 설정합니다. 1,2,3,*
나중에 토큰을 사용하여 변수를 연결하여 소스 및 대상 파일 이름을 적절하게 빌드하고 구문 분석할 수 있습니다.엑스카피원하는 결과를 얻기 위한 명령입니다.
배치 스크립트
@ECHO ON
SET Source=c:/roger/brawn
SET Destination=D:/var/lag
FOR /F "TOKENS=1,2,3,* DELIMS=_" %%F IN ('DIR /B /A-D "%source%\*.pdf"') DO ECHO F | XCOPY /Y /F "%source%\%%F_%%G_%%H_%%I" "%Destination%\%%F_%%G_%%I" && IF EXIST "%Destination%\%%F_%%G_%%I" DEL /Q /F "%source%\%%F_%%G_%%H_%%I"
EXIT
메모:그만큼에코명령 파이프 F
를엑스카피F
명령을 사용 하면 원하는 파일 이름을 얻는 데 도움이 되도록 루프에서 세 번째 토큰을 구문 분석하는 새 대상 파일 이름을 명시적으로 지정하므로 "file"을 암시적으로 선택합니다 . 그만큼엑스카피명령 뒤에는조건부 실행(&&)성공했는지 확인한 다음 원본 소스 파일을 삭제하기 전에 새 대상 파일이 있는지 확인합니다.