标题: [系统相关] 批处理如何建立fsutil用法的完整手册? [打印本页]
作者: novaa 时间: 2007-11-23 12:31 标题: 批处理如何建立fsutil用法的完整手册?
学习 fsutil 的用法
发现要一下一下的查询啰嗦
就想吧他的用法归集成一个文档
我的代码是- setlocal enabledelayedexpansion
- fsutil >fsutil.txt
- for /f "skip=2" %%a in (fsutil.txt) do (echo fsutil %%a)>>2.txt
- del fsutil.txt & ren 2.txt fsutil.txt
- for /f "delims=" %%a in (fsutil.txt) do (set var=%%a
- set var1=!var:fsutil =! & echo !var!>>!var1!.txt & %%a>>!var1!.txt
- )
- pause
- for /r %%a in (*.txt) do copy %%a fsutil.txt
- pause>nul
复制代码
请问如何把给出的例子也加上去
比如把- C:\Documents and Settings\canyou>fsutil file createnew
- 用法 : fsutil file createnew <文件名> <长度>
- 例如 : fsutil file createnew C:\testfile.txt 1000
复制代码
也弄上去
作者: namejm 时间: 2007-11-23 19:55
演示代码如下:- @echo off
- cd.>fsutil.txt
- setlocal enabledelayedexpansion
- for /f %%i in ('fsutil^|findstr /b [a-z]') do (
- for /f "tokens=1,3" %%j in ('fsutil %%i') do (
- if "%%j"=="----" (set str=%%k) else (fsutil !str! %%j|findstr /v " 是无效参数。")>>fsutil.txt
- )
- (echo.&echo.)>>fsutil.txt
- )
- start fsutil.txt
复制代码
最开始,我认为这个问题很好解决,可是,真正把代码写完,竟然花掉了半个多小时:两分钟时间码字,30多分钟后才想到要用 |findstr /v " 是无效参数。" 来过滤显示结果。至于为什么需要过滤,我一直弄不明白,期待后面的解答。
作者: 随风 时间: 2007-11-23 22:09
回楼上
无效的参数 是因为 ---- 支持的 DIRTY 命令 ---- 的下一行是个空行,也许不是空行,有些不可见字
符也不一定,但肯定是 无效的参数,所以会提示错误。
底下是我写的,多作了些装饰,代码也长很多
:- @echo off&setlocal EnableDelayedExpansion
- set "wjm=>>fsutil帮助信息.txt"
- set wjm=
- echo fsutil%wjm%
- fsutil%wjm%
- echo.===============================================================%wjm%
- echo.===============================================================%wjm%
- echo.
- for /f "skip=2 tokens=1* delims= " %%a in ('fsutil') do call :lis %%a "%%b"
- echo.&pause>nul
- exit
- :lis
- for /f "tokens=1* delims= " %%b in ('fsutil %1') do (
- echo.%wjm%
- if "%%b"=="----" (echo %%b %%c%wjm%&echo %1 %~2%wjm%) else (
- if %%b gtr 0 (
- echo %%b %%c%wjm%
- fsutil %1 %%b%wjm%
- echo.%wjm%
- )
- )
- )
- echo.===============================================================%wjm%
- goto :eof
复制代码
[ 本帖最后由 随风 于 2007-11-23 22:57 编辑 ]
作者: novaa 时间: 2007-11-23 22:10
呵呵
谢谢了啊
作者: namejm 时间: 2007-11-23 22:24
当我在第二个do之后添加echo %%j的时候,会显示 Echo 处于关闭状态 云云,那么,也就意味着存在空行,可是,普通的for语句不是自动过滤掉空行的么?没想明白。
作者: 随风 时间: 2007-11-23 22:29
应该不是空行,你用 echo a%%jb
会发现只显示一个b前面的那个a不见了。
也许又是什么什么进制的问题吧? 我想弄个wimc的帮助,始终不行,也是这个原因。
wimc的帮助信息,连设为变量都会出错,才真是晕!
确实不是空行 你用 if %%j gtr 0 也可以。
[ 本帖最后由 随风 于 2007-11-23 22:58 编辑 ]
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |