파일 이름을 기반으로 폴더를 만드는 .bat가 필요합니다.

파일 이름을 기반으로 폴더를 만드는 .bat가 필요합니다.

파일 이름을 기반으로 폴더를 만들고 그 안에 파일을 넣을 .bat가 필요합니다. 다음과 같은 형식의 이름이 있습니다.

string1 - string2 - string3 - string2 - string3_number.jpg

필요에 따라 첫 번째 문자열 3개를 사용하는 명령을 찾았지만 더 이상 작동하게 할 수는 없습니다. 이 명령을 bat에 넣으려고 하면 "--"라는 폴더만 생성됩니다.

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (set string1=%%a&set string2=%%b&set string3=%%c
md "%string1%-%string2%-%string3%")

.bat에서 이 앞에 @echo를 끄고 setlocal을 넣으면 작동하지 않습니다. 누군가 이름을 기반으로 폴더를 만들고 파일을 넣을 수 있도록 올바르게 만들 수 있도록 도와줄 수 있습니다. 이 게시물을 읽었지만 여전히 폴더를 만들 수 없습니다.

답변1

때문에지연된 확장설정시 필수입니다그리고(코드 블록)에서 var를 사용하면 작동하지 않습니다.

그러나 전혀 필요하지 않은 변수는 변경하지 않으므로.

@Echo off & Setlocal EnableDelayedExpansion

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (
  set "Folder=%%a-%%b-%%c"
  Rem to remove the trailing space from the Folder
  set "Folder=!Folder:~0,-1!"
  If not exist "!Folder!\" MD "!Folder!"
)

잘못된 접근 방식으로 파일을 이동하려면 먼저 파일을 반복하고 두 번째로 위와 같이 분할해야 합니다.

관련 정보