특정 폴더 "ABC"에 여러 개의 .pdf 및 .tex 파일이 있습니다.
모두 계획에 따라 이름이 지정되었습니다.
C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth
씨이 구성표에서는 장(Chapter)을 의미합니다.에스섹션 및봄 여름 시즌하위 섹션의 경우. 따라서 ABC 폴더에는 각 장에 대한 폴더도 있습니다.C01,C02기타 등등. 각 장 폴더에는 다음과 같은 이름의 폴더가 하나 있습니다.영화.
누군가가 배치 스크립트를 작성하여 모든 .tex 및 .pdf 파일을 각각 이동할 수 있도록 해주세요.영화-폴더 등 으로 C04S01SS02_More_words.pdf
이동됩니까 ?C04/Pictures
C01S02_Word.pdf
C01/Pictures
메모:물론 나는 이미 이것을 구글링했다하지만 지금까지는 많은 비트를 모두 작업 스크립트로 변환할 수 없었습니다. 더 이상 T&E 실행을 원하지 않습니다. :/
답변1
다음 배치 파일을 만듭니다.
@echo off
for %%F in (*.pdf *.tex) do call :subr "%%F"
exit /b
:subr
set filename=%1
move %1 %filename:~1,3%\Pictures
exit /b
노트:
for %%F in (*.pdf *.tex) do …
*.pdf
또는*.tex
와 일치하는 각 파일 이름에 대해 다음 명령문을 한 번씩 수행합니다%%F
.call :subr "%%F"
%1
첫 번째 인수( )를"%%F"
(파일 이름, 인용부호) 로 설정하여 스크립트의 아래쪽 세 줄을 호출합니다 .exit /b
명령 프롬프트 창을 없애지 않고 스크립트를 종료합니다.set filename=%1
파일 이름 인수를filename
변수에 복사합니다.move
파일을 옮깁니다.%variable:~start,len%
의 표시된 하위 문자열 (첫 번째 문자는 #0) 을 취하므로 의 처음 3개 문자도 마찬가지입니다 . (카운트는 0부터 시작합니다. 건너뛰기 위해 1을 사용하고 있습니다 .)%variable%
%filename:~1,3%
%filename%
"
exit /b
서브루틴에서 반환됩니다.