[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理如何建立fsutil用法的完整手册?

学习 fsutil 的用法
发现要一下一下的查询啰嗦
就想吧他的用法归集成一个文档
我的代码是
  1. setlocal enabledelayedexpansion
  2. fsutil >fsutil.txt
  3. for /f "skip=2" %%a in (fsutil.txt) do (echo fsutil %%a)>>2.txt
  4. del fsutil.txt & ren 2.txt fsutil.txt
  5. for /f "delims=" %%a in (fsutil.txt) do (set var=%%a
  6. set var1=!var:fsutil =! & echo !var!>>!var1!.txt & %%a>>!var1!.txt
  7. )
  8. pause
  9. for /r %%a in (*.txt) do copy %%a fsutil.txt
  10. pause>nul
复制代码

请问如何把给出的例子也加上去
比如把
  1. C:\Documents and Settings\canyou>fsutil file createnew
  2. 用法 : fsutil file createnew <文件名> <长度>
  3. 例如 : fsutil file createnew C:\testfile.txt 1000
复制代码
也弄上去
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

  演示代码如下:
  1. @echo off
  2. cd.>fsutil.txt
  3. setlocal enabledelayedexpansion
  4. for /f %%i in ('fsutil^|findstr /b [a-z]') do (
  5.     for /f "tokens=1,3" %%j in ('fsutil %%i') do (
  6.         if "%%j"=="----" (set str=%%k) else (fsutil !str! %%j|findstr /v " 是无效参数。")>>fsutil.txt
  7.     )
  8.     (echo.&echo.)>>fsutil.txt
  9. )
  10. start fsutil.txt
复制代码
  最开始,我认为这个问题很好解决,可是,真正把代码写完,竟然花掉了半个多小时:两分钟时间码字,30多分钟后才想到要用 |findstr /v " 是无效参数。" 来过滤显示结果。至于为什么需要过滤,我一直弄不明白,期待后面的解答。

TOP

回楼上
无效的参数  是因为   ---- 支持的 DIRTY 命令 ----   的下一行是个空行,也许不是空行,有些不可见字
符也不一定,但肯定是 无效的参数,所以会提示错误。
底下是我写的,多作了些装饰,代码也长很多
:
  1. @echo off&setlocal EnableDelayedExpansion
  2. set "wjm=>>fsutil帮助信息.txt"
  3. set wjm=
  4. echo fsutil%wjm%
  5. fsutil%wjm%
  6. echo.===============================================================%wjm%
  7. echo.===============================================================%wjm%
  8. echo.
  9. for /f "skip=2 tokens=1* delims= " %%a in ('fsutil') do call :lis %%a "%%b"
  10. echo.&pause>nul
  11. exit
  12. :lis
  13.   for /f "tokens=1* delims= " %%b in ('fsutil %1') do (
  14.   echo.%wjm%
  15.   if "%%b"=="----" (echo %%b %%c%wjm%&echo %1 %~2%wjm%) else (
  16.     if %%b gtr 0 (
  17.       echo %%b %%c%wjm%
  18.       fsutil %1 %%b%wjm%
  19.       echo.%wjm%
  20.     )
  21.   )
  22. )
  23. echo.===============================================================%wjm%
  24. goto :eof
复制代码

[ 本帖最后由 随风 于 2007-11-23 22:57 编辑 ]
技术问题请到论坛发帖求助!

TOP

呵呵
谢谢了啊
ㄗs:A good programming is 99% sweat and 1% coffee!--①個亾

============ >   hi.baidu.com/novaa   <============

TOP

  当我在第二个do之后添加echo %%j的时候,会显示 Echo 处于关闭状态 云云,那么,也就意味着存在空行,可是,普通的for语句不是自动过滤掉空行的么?没想明白。

TOP

应该不是空行,你用 echo a%%jb
会发现只显示一个b前面的那个a不见了。
也许又是什么什么进制的问题吧? 我想弄个wimc的帮助,始终不行,也是这个原因。
wimc的帮助信息,连设为变量都会出错,才真是晕!

确实不是空行  你用   if %%j gtr 0  也可以。

[ 本帖最后由 随风 于 2007-11-23 22:58 编辑 ]
技术问题请到论坛发帖求助!

TOP

返回列表