2014-03-05 3 views
1

최근에이 질문의 대답 (https://stackoverflow.com/a/18017189/2371039)을보고 기본적으로 복사하여 내 자신의 배치 파일에 붙여 넣었지만 약간의 수정 작업을 수행했습니다. 내가 실행했을 때, 파일이 잘못된 구문을 반환하고, 일부 디버그와 함께 첫 번째 for 루프에 걸려있는 것을 발견했습니다. 전에 일괄 적으로 루프를 처리하지 않았기 때문에 적절한 구문을 모른다.루프가 잘못된 구문을 반환하는 경우

CODE : 이것이 내가 그 안에 가지고 n00b 실수 인 경우

::@echo off 
setlocal enabledelayedexpansion 
echo setlocal 
pause 
cd /d "%CD%" 
echo cd 
pause 
for %%a in (*-*.*) do (
    echo for1 
    pause 
    for /f "delims=-" %%b in ("%%a") do (
     set "f=%%b" 
     if /i "%%~xa"==".pdf" (
      md "%CD%/pdf/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/pdf/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".png" (
      md "%CD%/images/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/images/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".jpg" (
      md "%CD%/images/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/images/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".jpeg" (
      md "%CD%/images/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/images/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".txt" (
      md "%CD%/txt/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/txt/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".html" (
      md "%CD%/html/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/html/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".gif" (
      md "%CD%/images/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/images/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".exe" (
      md "%CD%/exe/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/exe/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".xml" (
      md "%CD%/html/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/html/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".wav" (
      md "%CD%/videos/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/videos/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".mov" (
      md "%CD%/videos/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/videos/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".mp4" (
      md "%CD%/videos/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/videos/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".ogg" (
      md "%CD%/music/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/music/!f:~0,-1!" >nul 
     ) else if /i "%%~xa"==".mp3" (
      md "%CD%/music/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/music/!f:~0,-1!" >nul 
     ) else 
      md "%CD%/other/!f:~0,-1!" 2>nul 
      move "%%a" "%CD%/other/!f:~0,-1!" >nul 
     ) 
    ) 
) 

, 그래서 난 더 이상 그것에 대해 n00b을하지 않습니다 그것을 설명하십시오.

당신이 그것을 닫으려고 나는이 마지막 ELSE에 여는 괄호를 추가

답변

1

...

그리고는 다음 명령 또는 코드 블록하지 않고 ELSE 사용을 허용하지 않는다.

... 
    ) else (
     md "%CD%/other/!f:~0,-1!" 2>nul 
     move "%%a" "%CD%/other/!f:~0,-1!" >nul 
    ) 
... 
+0

덕분에 배치 파일이 작동하고 파일을 정렬하게되었습니다. 방금 작업 시간이 절약되었습니다. 지금 AI가 유지할 파일에 대한 내 마음을 읽을 수있는 경우에만 ... xD –

관련 문제