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