作者: 6508as 时间: 2013-9-13 19:04
尊敬的apang:您好!
谢谢您昨天的回复! 我原来是用:“XCOPY d:\ c:\d盘的目录\ /s /t /e”和“dir d:/s >c:\d盘的文件.txt”这二个命令来备份磁盘的,查看起来比较麻烦,现在您把它们合二为一,查看起来方便多了。但是也有一个小缺陷,就是文件的大小看不到。
能不能判断每个文件的大小,然后附在文件名的后面
不过我也不知道是否可行,可是惭愧的很,由于自己的水平有限而做伸手党唉。。。因此占用了您许多宝贵的时间,如果您有时间的话就帮忙看看,如果没有时间的话就做罢好了。总之是谢谢您了!祝好运相伴左右!
作者: apang 时间: 2013-9-13 22:38
本帖最后由 apang 于 2013-9-13 22:40 编辑
回复 10# 6508as
相当蛋疼的浮点运算,试试吧- @echo off
- set "Drv=D:" & set "Folder=c:\复制的D磁盘"
- xcopy /hcte %Drv%\* "%Folder%\" 2>nul
-
- for /f "delims=" %%a in ('dir /a-d /b /s %Drv%\*') do (
- set "Name=%%~dpna"
- setlocal enabledelayedexpansion
- set "tmp=%%~za00"
- for %%b in (16 8 4 2 1) do (
- if not "!tmp:~%%b!"=="" set /a Len+=%%b&set "tmp=!tmp:~%%b!"
- )
- set "num=%%~za00" & set /a n = Len - 3
- for /l %%b in (!n! -1 1) do (
- set "s=!num:~,-%%b!"
- if "!s:~,1!"=="0" set "s=!s:~1!"
- set /a m=s%%1024,s/=1024
- set "Size=!Size!!s!"
- set "num=!m!!num:~-%%b!"
- )
- if !Len! lss 5 (
- set "Size=00!Size!" & set "Size=!Size:~-1!"
- ) else if "!Size:~,1!"=="0" set "Size=!Size:~1!"
- set "Name=%Folder%!Name:~2![!Size:~,-1!.!Size:~-1!KB]%%~xa"
- cd .>"!Name!"
- endlocal
- )
- pause
复制代码
作者: 6508as 时间: 2013-9-14 04:37
回复 11# apang
非常完美的答案,谢谢您! 感激之情悠然而生。祝:幸福永远陪伴左右!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |