Forfiles - 排序文件

时间:2014-01-29 18:48:13

标签: cmd

我需要编写简单的脚本。关键是要对文件夹中的文件进行排序,该文件夹的名称是文件名的第一个字母。我理解操作的顺序(获取@fname的第一个字母;检查文件夹是否存在;创建文件夹;移动文件)但我不明白它是如何在没有代码块的情况下编写的(do和{{ 1}})。 forfiles阻止end?或者我如何在没有阻止的情况下编写这个脚本?

2 个答案:

答案 0 :(得分:2)

这是另一种方法:

@echo off
   for %%a in (1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
      if exist "%%a*" md "%%a" 2>nul & move "%%a*" "%%a"
   )
pause

答案 1 :(得分:0)

@echo off

dir /b /a-d *.* >tmp
echo END OF FILE>>tmp
echo -- start --

:loop
set /p file=<tmp
if "%file%"=="END OF FILE" goto :end
if "%file%"=="tmp" goto :ignore

md %file:~0,1%\%file% 2>nul
move "%file%" "%file:~0,1%\%file%"

:ignore
more +1 tmp >tmp2
del tmp
ren tmp2 tmp
goto :loop

:end
echo -- finish --
exit /b

Puh - 我开始喜欢那些积木了^^

无需检查文件夹是否已存在,md将在不存在的情况下生成该文件夹,如果确实存在则发出错误(2>nul将其发送给必杀技)