中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 文件整理 上一主题 | 下一主题
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『楼 主』:  文件整理


@goto code

from plp626@cn-dos.net
整理当前目录树下的文件(含隐藏文件)
空目录,0字节文件删除,空畸形目录删除.
支持特定文件保护功能.

:code
::按扩展名整理当前目录树下的文件(包括隐藏的)
@echo off
mode con lines=20 cols=30
title 正在分析文件...
if "%cd%"=="%HOMEDRIVE%\" exit
call :path
if "%cd:~-1%"=="\" set cd=%cd:\=%
::设定受保护目录,该目录内的所有文件,子目录将不被整理
set "protect=%cd%\zjw\"
::这定受保护文件...
set "profile=%cd%\move mp3.bat"
for /f "tokens=*" %%a in ('dir/ah/b/s 2^>nul') do attrib -h -s "%%a" >nul 2>nul
for /r %%a in (*) do (
if %%~za==0 del /a/f/q "%%a"
if not "%%a"==%0 if not "%%a"=="%profile%" (
if not "%%~dpa"=="%cd%\%%~xa_file\" if not "%%~dpa"=="%protect%" (
call:m "%%~dpa" "%%~nxa" "%%~na" "%%~xa"
)))
for /f "delims=" %%a in ('dir/ad/s/b^|findstr /e "\."') do rd "%%a.\" 2>nul
::注意只读属性的空目录
for /f "delims=" %%a in ('dir/ar/s/b 2^>nul') do attrib -r "%%a" 2>nul
for /f "tokens=*" %%b in ('dir/ad/b/s^|sort /r') do rd "%%b" 2>nul
pause
goto:eof

rem ---------  subprocess  ------------
:m
if exist "%~4_file\%~2" (call :rename %*) else set "n="
:m1
move "%~1%~2" "%~4_file\%~3%n%%~4" 2>nul||md "%~4_file" 2>nul&&goto:m1
goto:eof

:rename
set "n=1"
:loop
if exist "%~4_file\%~3_%n%%~4" set/a n+=1&goto loop
set "n=_%n%"&goto:eof

::备份
:path
set t=%time::=%
set r=%HOMEDRIVE%\tree
md %r% 2>nul
md "%r%\%t:~,-3%"
dir /a/b/s>>"%r%\%t:~,-3%\%t%.path"
goto:eof

@echo off&setlocal enabledelayedexpansion
::抽取当前目录树下的文件.
for /f "tokens=*" %%a in ('dir/a-h/b/s 2^>nul') do attrib -h -s "%%a" 2>nul
for /r %%a in (*) do (
   if exist "%%~nxa" call :re "%%~na" "%%~xa"
   move "%%a" "%%~na!n!%%~xa"
)
goto :eof
:re
set "n=1"
:loop
if exist "%~1_%n%%~2" set/a n+=1&goto loop
set "n=_%n%"&goto :eof

@echo off&setlocal enabledelayedexpansion
::抽取当前目录受内歌曲文件到指定路径
set "file=*.mp3 *.wma"
set "drive=%cd%\"
set "U=F:\entertainment\music\"
for /r "%drive%" %%a in (%file%) do (
   if exist "!U!%%~nxa" call :re "%%~na" "%%~xa"
   move "%%a" "!U!%%~na!n!%%~xa"
)
goto :eof
:re
set "n=1"
:loop
if exist "!U!%~1_%n%%~2" set/a n+=1&goto loop
set "n=_%n%"&goto :eof
~~~~~~欢迎测试!~~~~~~

[ Last edited by plp626 on 2008-5-5 at 04:06 PM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-5 23:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 2 楼』:  

我不是雷锋,哪怕是批评,我得进步,不然就白发了.

谁测试我给谁加分.



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-6 23:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 3 楼』:  

谁测试然后发表评论我给谁加8分



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-7 00:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

写得太高深了,看不懂。^_^

   此帖被 +16 点积分        点击查看详情   
评分人:【 plp626 分数: +8  时间:2008-3-7 00:50
评分人:【 523066680 分数: +8  时间:2008-7-28 16:29


2008-3-7 00:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 5 楼』:  

不会吧,版主,有您看不懂的,讽刺我呢



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-7 00:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 6 楼』:  

忘了提醒大家,可千万不要在C盘根目录运行上面任何一个代码



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-7 00:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 7 楼』:  

没看懂整理什么

2008-3-7 00:59
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 8 楼』:  

你没测试,我补给你加分了



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-7 01:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 9 楼』:  

看了下,是按文件扩展名进行分类整理。
只是代码看起来好像太乱了。有点晕晕的


:path
set t=%time::=%
set r=%HOMEDRIVE%\tree
md "%r%" 2>nul
md "%r%\%t:~,-3%"||(pause&exit)
dir /a/b/s>>"%r%\%t:~,-3%\%t%.path"
不知这个HOMEDRIVE从哪来的?
如果没有就相当于\TREE也就是在根目录下



QQ:366840202
http://chenall.net
2008-3-7 01:13
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
HAT
版主





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



  Quote:
Originally posted by chenall at 2008-3-7 01:13 AM:
看了下,是按文件扩展名进行分类整理。
只是代码看起来好像太乱了。有点晕晕的


:path
set t=%time::=%
set r=%HOMEDRIVE%\tree
md "%r%" 2>nul
md & ...

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>echo %HOMEDRIVE%
C:

2008-3-7 10:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





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



  Quote:
Originally posted by plp626 at 2008-3-7 12:49 AM:
谁测试然后发表评论我给谁加8分

我可以对这句话评论一下吗?(不知道能不能被加分,呵呵)
大家来CNDOS是为了学习知识而不是增加积分^_^

   此帖被 +8 点积分        点击查看详情   
评分人:【 plp626 分数: +8  时间:2008-3-7 11:52


2008-3-7 10:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 12 楼』:  

我说话算数,给你加了(尽管你没测试),

我当然也是来学知识的,可学知识就是要进步的,没有交流,没有人批评进步就困难,



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-7 11:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lslcxlsl
初级用户





积分 52
发帖 24
注册 2007-8-24
状态 离线
『第 13 楼』:  

测试后系统默认有都可以识别的文件都分类了.可是有一个php的文件没有分类不知道为什么?

第二段代码没有测试,因为没有产生tree文件夹.

如果分类的名称能是中文的那就比较好了

[ Last edited by lslcxlsl on 2008-3-7 at 02:36 PM ]

   此帖被 +8 点积分        点击查看详情   
评分人:【 plp626 分数: +8  时间:2008-3-8 13:52


2008-3-7 12:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 14 楼』:  

lslcxlsl兄,是plp文件对吧,你有没有敲错?

我今天把分都加完了,下次我给你补上



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-7 18:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 15 楼』:  

提议一个文件整理批处理:
按文件属性整理比如:
音频类的
视频类的
文本文件 ---记事本的, word , ppt, pdf,...
编程类的 c,java,...,
电子书类的
图片类的
绿色软件类的
压缩包
网页类的
能具有文件分析能力,对安装软件所在目录不整理



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-3-10 11:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: