Board logo

标题: [文本处理] 批处理怎样获取文本中defrag命令得到的磁盘空间? [打印本页]

作者: shuaige100    时间: 2010-7-8 13:24     标题: 批处理怎样获取文本中defrag命令得到的磁盘空间?

  1. Windows 磁盘碎片整理程序
  2. 版权所有 (c) 2001 Microsoft Corp. and Executive Software International Inc.
  3. 分析报告
  4.     总共 6.91 GB,6.16 GB (89%)可用,13% 零碎(26% 文件碎片)
  5. 您应该对该卷进行碎片整理。
复制代码
以上代码是这个命令产生的defrag -a g:并取下面两个并显示成两行,有太多空格了我不知道怎么取呵呵:
6.91gb
6.16gb

[ 本帖最后由 shuaige100 于 2010-7-8 13:34 编辑 ]
作者: canyuexiaolang    时间: 2010-7-8 13:24

  1. @echo off
  2. for /f "skip=2 tokens=1,2,3,4" %%a in ('find "总共" Result.txt') do (
  3.      for /f "delims=, tokens=1,*" %%i in ("%%b %%c %%d") do (
  4.           echo %%i&echo %%j
  5.      )
  6. )
  7. pause>nul
复制代码
==============================================
楼主,说实话,这个我是拿来练手的。。对for开始有更加深入的了解...
改了7.8次,总算受到楼上的启发,写了个嵌套FOR循环。。
谢谢楼上的哈、、继续期待更加高效率的代码

[ 本帖最后由 canyuexiaolang 于 2010-7-8 17:41 编辑 ]
作者: caruko    时间: 2010-7-8 13:27

for /f %%a in ('findstr "总共" a.txt') do echo;%%b&echo;%%c
作者: shuaige100    时间: 2010-7-8 14:02

原帖由 caruko 于 2010-7-8 13:27 发表
for /f %%a in ('findstr "总共" a.txt') do echo;%%b&echo;%%c

你的命令有问题,能显示a变量,其它的不能
作者: shuaige100    时间: 2010-7-8 17:56

不好意思都是我的错没好好研究
答案是这个
  1. @echo off
  2. for /f "skip=4 tokens=1-6 delims=共,(,( eol=不" %%b in ('defrag -a I:') do (echo 总%%c
  3. echo %%d)|msg %username% /time:5
复制代码

作者: canyuexiaolang    时间: 2010-7-8 18:02

@echo off
for /f "skip=4 tokens=1-6 delims=共,(,( eol=不" %%b in ('defrag -a I:') do (echo 总%%c
echo %%d)|msg %username% /time:5

这个代码好复杂...我还得学啊...唉...
作者: x9tiancmd    时间: 2010-7-8 22:01     标题: 这是我电脑上用的磁盘碎片整理.

  1. @echo off
  2. for /f  "skip=4" %%i  in ('mountvol ^|find  ":"')  do  defrag -a %%i |find "不需要"  >nul 2>nul||echo.正在对%%i进行碎片整理,请耐心等待(也许时间N长)..&&defrag -f %%i
  3. pause
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2