中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何分类文件到不同的文件夹中?
作者:
标题: [求助]如何分类文件到不同的文件夹中? 上一主题 | 下一主题
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『楼 主』:  [求助]如何分类文件到不同的文件夹中?

有一个文件夹《内有一百多张的JPG的图片) 我想让它们自动的,以三十个为一个文件夹的分开 全部命名有规律的 前面还有东西 例如: 山东1 山东2 .. .... 不管是VBS还是BAT还是什么办法(我现有的工具就是记事本)。。。。帮我 ──────────────────── 版务记录 ───────────────────── 标题:急求帮忙中》在线等--------------- 处罚:因在限定之日内未及时修改主题标题,现强制修改标题,并处扣除8点积分以示警告。 执行:lxmxn ──────────────────── 版务记录 ───────────────────── [ Last edited by lxmxn on 2008-10-7 at 10:25 ]


   此帖被 -12 点积分     点击查看详情   
评分人:【 pooronce 分数: -4  时间:2008-10-6 21:17
评分人:【 lxmxn 分数: -8  时间:2008-10-7 10:26


2008-10-2 21:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 2 楼』:  

有个,可是不是这种效果 可以参考下 for /f "delims=" %%i in ('dir /a-d /b *.jpg') do (md "%%~ni"&move "%%i" "%%~ni")


2008-10-2 21:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 3 楼』:  

@echo off dir /a-d /b >name.txt set m=0 set file=0 for /f %%c in (name.txt) do ( set /a m+=1 md %file% if m%30=0 set /a file+=1 copy %%a %file% ) 语法肯定有错误,思路应该就这样了...谁能改一下...能力有限


2008-10-2 22:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 4 楼』:  

for /f "delims=" %%i in ('dir /a-d /b *.jpg') do (md "%%~ni"&move "%%i" "%%~ni") 这段已经做到了 把每一个文件以它的名字建立一个文件夹,并且放进去 我要的是以数量,,,三十个JPG文件为一个单位


2008-10-2 22:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 5 楼』:  

@echo off for /f "delims=" %%i in ('dir/b "C:\Documents and Settings\Administrator\桌面\test\*.jpg"') do ( set/a n=%%i/30,n+=1 ECHO %%i %%n ) pause SLORe 给的一个例子,(我能力有限没有看明白)


2008-10-2 23:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 6 楼』:  

@echo off setlocal enabledelayedexpansion for %%a in (*.jpg) do ( set /a "n+=1" set "m=000!n!" ren "%%a" 山东!m:~-3!.jpg ) for %%a in (*.jpg) do ( set /a "nn+=1" set "_!nn!=%%a" if "!nn!"=="30" ( set /a "mm+=1"&set "nn=0" md !mm! 2>nul for /l %%i in (1 1 30) do (move /y !_%%i! !mm!) ) ) set /a "mm+=1" md %mm% 2>nul move /y *.jpg %mm% 已经成功 感谢:QQ:526620986《浩宇微尘》ID:moniuming


2008-10-2 23:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  。。。那个不是我的“例子”哦

。。。。 我给的例子是这样的………… @echo off for /l %%i in (1,1,100) do ( set/a n=%%i/30,n+=1 call echo %%n%% ) pause




S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-10-2 23:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Evangel
初级用户





积分 145
发帖 95
注册 2008-4-12
状态 离线
『第 8 楼』:  

够辛苦的...论坛q群两不误


2008-10-2 23:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 9 楼』:  

@echo off setlocal enabledelayedexpansion for %%a in (*.jpg) do ( set /a "n+=1" set "m=000!n!" ren "%%a" 山东!m:~-3!.jpg ) for %%a in (*.jpg) do ( set /a "nn+=1" set "_!nn!=%%a" if "!nn!"=="31" ( set /a "mm+=1"&set "nn=0" md !mm! 2>nul for /l %%i in (1 1 30) do (move /y !_%%i! !mm!) ) ) set /a "mm+=1" md %mm% 2>nul move /y *.jpg %mm% 将30改为31 这样呢,你的文件如果正好是30个或者是60个,也就是30的倍数的话呢,你就会多创建出一个文件夹,利用31这个巧妙的多出一个数字正好可以解决这个问题,呵呵..因为 for /l %%i in (1,1,30)照样取的是30个,所以.


2008-10-3 14:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 10 楼』:  

感谢中。。。


2008-10-3 21:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
crazysakura
初级用户





积分 82
发帖 46
注册 2008-8-15
状态 离线
『第 11 楼』:  

我想要这个代码的注释 for %%a in (*.jpg) do ( \\找出与有的jpg的文件,传递到变量%%a上 set /a "n+=1" \\ 设置(后面的不明白了) set "m=000!n!" \\ 设置m等于(后面的不明白了) ren "%%a" 山东!m:~-3!.jpg \\ 改名字这是 改%%a 的名字(后面的不明白了) ) for %%a in (*.jpg) do ( \\ 找出与有的jpg的文件,传递到变量%%a上 set /a "nn+=1" \\ 设置(后面的不明白了) set "_!nn!=%%a" \\ 设置(后面的不明白了) if "!nn!"=="30" ( \\ 如果"!nn!"(这是什么意思我也不明白)等于30(后面的不明白了) set /a "mm+=1"&set "nn=0" \\设置????????然后设置 "nn=0" md !mm! 2>nul \\建立 !mm!至于!mm! 是啥我也不明白 for /l %%i in (1 1 30) do (move /y !_%%i! !mm!) \\for 里面的/l我还没明白 但是建立30个文件夹这是.然后move 到!mm!里) ) ) set /a "mm+=1" /设置不明白 md %mm% 2>nul /建立%MM% 不明白为何要 2>nul move /y *.jpg %mm% /MOVE 全部的jpg 到%MM% 这个%MM%是什么量我还没明白 以上是我能力以内的理解。不只哪有错。。。希望大家给补上


2008-10-3 22:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slw218856
初级用户





积分 133
发帖 75
注册 2008-8-3
状态 离线
『第 12 楼』:  

set /a "n+=1" 为何后面的计算式要加引号。 请在线朋友帮解答


2008-10-6 19:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 13 楼』:  Re 12楼

这里的引号是没有必要的




2008-10-6 20:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: