先上批处理,再解释
@echo off
echo ==================================================
echo.
echo 照片分类辅助工具
echo.
echo --------------------------------------------------
echo.
echo 准备将当前文件夹下的文件分发到各个文件夹中...
echo.
pause
echo.
echo.
set pic_count = 0
set dir_count = 0
for /f "tokens=1,2,3 delims=-" %%a in ('dir /a-d /b *.*') do (
if not %%a == %0 (
if not exist %%a (
echo 建立文件夹: "%%a"
md %%a
set /a dir_count += 1
echo.
)
echo 移动文件 %%a-%%b-%%c 到 %%a%
move %%a-%%b-%%c %%a%
set /a pic_count += 1
echo.
)
)
echo 已建立%dir_count%个文件夹,并将%pic_count%个文件分发到各个文件夹中...
bat文件的作用是,将当前文件夹中的所有文件放到指定的文件夹中。
文件名需要用短横线“-”分为3部分,第一部分为指定的文件夹的名称。例如:“123-4-567.jpg”、“123-5-567.jpg”文件将会被放到“123”文件夹中,而“1234-5-67.jpg”将会被放到“1234”文件夹中。
值得注意的是for语句
/f
包含变量延迟delims=-
将变量用'-'分开tokens=1,2,3
将变量分开后的各个部分赋值给3个变量 %%a %%b %%c'dir /a-d /b *.*'
dir命令/a
要显示的文件属性,-d
为不包含文件夹/b
简略模式,不显文件示详情
评论!