【发布时间】:2014-03-05 21:13:04
【问题描述】:
我最近查看了这个问题的答案 (https://stackoverflow.com/a/18017189/2371039),基本上将其复制并粘贴到我自己的批处理文件中,但做了一些编辑。当我运行它时,该文件返回了不正确的语法,并且通过一些调试,发现它挂在第一个 for 循环上。我之前没有对 for 循环进行任何批处理,因此不知道它的正确语法。
代码:
::@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 错误,请解释一下,这样我就不再是 n00b 了。
【问题讨论】:
标签: batch-file for-loop