01;16 2006-07-17 粗活,太多不确定因素,同时因为涉及到Sort,Find等等命令,以及命令在NT系统中与9X系统的区别,这批处理只限于大多数中文XP(NT)系统......自己看着改吧.
分别命名2目录为d1 和 d2,......
;\\\\\\\\\\\\\\\\\\\\\\\\\\\
rem 目录大小对比
rem 目录尺寸按顺序输出为两个值,以值在文件中排序,对比排序前后文件是否一致来判断是否交换了文件夹尺寸顺序,以此作为依据判断两目录大小.
rem 1,"个文件"词组不能出现在文件名中.
rem 2,目录中含有隐藏文件不能被列出并加入文件夹大小.可参考加入"attrib *.* -h -s -r -a"命令
rem---去除属性,加入到全局总量(k4me原创)
rem attrib d1\*.* -h -s -r -a
rem attrib d2\*.* -h -s -r -a
rem---将目录属性导出(k4me原创)
dir d1 /-c>dir.txt
dir d2 /-c>>dir.txt
rem---将目录尺寸信息导出(k4me原创)
find dir.txt "个文件" >byte1.txt
rem---净化目录尺寸信息行(k4me原创)
del byte2.txt /q
for /f "tokens=3 delims= " %%i in (byte1.txt) do @echo %%i>>byte2.txt
rem---排序信息行生成新文件.(k4me原创)
sort "byte2.txt" /r>byte3.txt
rem---对比两文件,看排序前后是否一致.......(k4me原创)
fc "byte2.txt" "byte3.txt" |find "找不到相异处"||@echo "第一个文件夹大">fbig.txt|notepad fbig.txt&goto end
:sbig
@echo "第二个文件夹大">sbig.txt|notepad sbig.txt
:end
;\\\\\\\\\\\\\\\\\\\\\\\\\\\
==============================以下为新补充内容18;22 2006-07-17
16;45 2006-07-17重大修改,[sort]失败,它是以左至右字符对比为基础,汗自己1g.(也就是说1111要小于2),17;18 2006-07-17已经改为if判断.Bug未除
16;09 2006-07-17,V3版本,完成V2提到的子目录文件属性更改.见 BBB----XXX部分.因为涉及目录操作,绝对路径中不可以有空格(比如常规桌面路径就不可以)(也可再麻烦些绕路排除此问题)
16;07 2006-07-17,V2版本,支持包含子目录.在原基础上增改了AAA---ZZZ部分内容.去除子目录文件属性可参考以下链接的技术实现. [
http://zhidao.baidu.com/question/4114125.html]
01;16 2006-07-17 粗活,太多不确定因素,同时因为涉及到Sort,Find等等命令,以及命令在NT系统中与9X系统的区别,这批处理只限于大多数中文XP(NT)系统......自己看着改吧.
分别命名2目录为d1 和 d2,......
;\\\\\\\\\\\\\\\\\\\\\\\\\\\
rem 目录大小对比
rem 目录尺寸按顺序输出为两个值,以值在文件中排序,对比排序前后文件是否一致来判断是否交换了文件夹尺寸顺序,以此作为依据判断两目录大小.(17;18 2006-07-17已经改为If判断)
rem 1,"个文件"词组不能出现在文件名中.
rem 2,目录中含有隐藏文件不能被列出并加入文件夹大小.可参考加入"attrib *.* -h -s -r -a"命令
rem---去除属性,加入到全局总量(k4me原创)
rem attrib d1\*.* -h -s -r -a
rem attrib d2\*.* -h -s -r -a
;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
attrib d1\*.* -h -s -r -a
dir d1 /s/b/ad/x >k4me_del.lst
for /f %%i in (k4me_del.lst) do attrib %%i\*.* -h -s -r -a
attrib d2\*.* -h -s -r -a
dir d2 /s/b/ad/x >k4me_del.lst
for /f %%i in (k4me_del.lst) do attrib %%i\*.* -h -s -r -a
;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
rem---将目录属性导出(k4me原创)
dir d1 /s /-c>dir1.txt
dir d2 /s /-c>dir2.txt
rem---确定特征字串出现行数.(等待作为废弃行结束标志跳跃取值)
find /n dir1.txt "所列文件总数:">canshu1.txt
find /n dir2.txt "所列文件总数:">canshu2.txt
for /f "skip=2 tokens=1 delims=[] " %%i in (canshu1.txt) do @echo %%i>canshu1.txt
for /f "skip=2 tokens=1 delims=[] " %%i in (canshu2.txt) do @echo %%i>canshu2.txt
rem---分别取复杂目录内总量信息.(k4me原创)
del dir11.txt /q
echo for /f "skip=%%1 tokens=* delims= " %%%%i in (dir1.txt) do @echo %%%%i ^>^>dir11.txt >me11.bat
for /f %%i in (canshu1.txt) do call me11.bat %%i
find dir11.txt "个文件" >dir111.txt
for /f "tokens=3 delims= " %%i in (dir111.txt) do @echo %%i>dir1111.txt
del dir22.txt /q
echo for /f "skip=%%1 tokens=* delims= " %%%%i in (dir2.txt) do @echo %%%%i ^>^>dir22.txt >me22.bat
for /f %%i in (canshu2.txt) do call me22.bat %%i
find dir22.txt "个文件" >dir222.txt
for /f "tokens=3 delims= " %%i in (dir222.txt) do @echo %%i>dir2222.txt
rem---对比两目录尺寸数值(k4me原创)
for /f %%i in (dir1111.txt) do for /f %%j in (dir2222.txt) do if %%i gtr %%j goto fbig
for /f %%i in (dir1111.txt) do for /f %%j in (dir2222.txt) do if %%i lss %%j goto sbig
goto same
rem---最终输出或改为其他(k4me原创)
:fbig
@echo "第一个文件夹大">msg.txt|notepad msg.txt
goto end
:sbig
@echo "第二个文件夹大">msg.txt|notepad msg.txt
goto end
:same
@echo "两个文件夹一样大">msg.txt|notepad msg.txt
goto end
:end
;\\\\\\\\\\\\\\\\\\\\\\\\\\\
参考资料:http://k4me.myrice.com/k4me.bat