파일 이름에 따라 디렉터리에서 다른 디렉터리로 파일을 이동해야합니다. 파일은 12345 123456.pdf
2 개의 문자열 길이가 다를 수 있는 형식입니다 . 하지만 둘 사이에는 항상 공백이 있으며 항상 PDF 파일입니다.
대상 디렉토리는 파일 이름의 첫 번째 문자열과 동일한 이름입니다 (예 : 10003075 3000101012.pdf
대상 디렉토리는 10003075
).
대상 디렉토리가 존재하지 않으면 생성하지 않습니다. 파일은 초기 디렉토리에 남아 있어야합니다.
파일 구조는 다음과 같습니다.
Main Folder
|
Destination Directories
Files waiting to be moved Directory
|
Batch file
따라서 배치 파일은 pdf 파일이있는 디렉토리를 확인한 다음 그 위에있는 디렉토리에서 파일 이름의 첫 번째 문자열에 해당하는 디렉토리를 확인한 다음 해당 파일이있는 경우에만 해당 디렉토리로 이동해야합니다. 파일이있는 곳에.
나는 stackoverflow에 대한 몇 가지 제안으로 작업했지만 내가 본 모든 것은 디렉토리를 만들거나 디렉토리가 없으면 파일을 기본 디렉토리로 이동합니다.
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
PUSHD "%sourcedir%"
FOR /f "tokens=1*delims= " %%a IN (
'dir /b /a-d "* *.pdf" '
) DO (
IF EXIST "..\%%a\." (ECHO(MOVE "%%a %%b" "..\%%a\") ELSE (ECHO(Leave "%%a %%b")
)
popd
GOTO :EOF
sourcedir
상황에 맞게 의 설정을 변경해야합니다 . 할당 %~dp0
이 가능합니다.
주어진 (% sourcedir %의 부분 dir / a : d)
20/01/2015 09:49 <DIR> one
20/01/2015 09:49 <DIR> t w o
20/01/2015 09:50 <DIR> 1232
20/01/2015 09:50 <DIR> 1234
그리고 pdf 소스의 dir :
u : \ sourcedir \ two의 디렉토리
20/01/2015 09:50 0 dum myfile2.pdf
20/01/2015 09:50 0 1231 54321.pdf
20/01/2015 09:50 0 1232 54321.pdf
20/01/2015 09:50 0 1233 54321.pdf
20/01/2015 09:50 0 1234 54321.pdf
20/01/2015 09:50 0 1235 54321.pdf
6 File(s) 0 bytes
이것은
Leave "dum myfile2.pdf"
Leave "1231 54321.pdf"
MOVE "1232 54321.pdf" "..\1232\"
Leave "1233 54321.pdf"
MOVE "1234 54321.pdf" "..\1234\"
Leave "1235 54321.pdf"
필요한 MOVE 명령은 ECHO
테스트 목적으로 만 사용됩니다. 당신이 명령이 올바른지 확인한 후 , 변화 ECHO(MOVE
에 대한 MOVE
사실에이 파일을 이동합니다. 추가] >nul
억제 보고서 메시지 (예. 1 file moved
)
Leave
메시지 및 관련 else
조항은 물론 선택이 될 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다