- 帖子
- 14932
- 积分
- 46139
- 技术
- 857
- 捐助
- 745
- 注册时间
- 2008-6-9
|
[其他] Bill Stewart的命令行工具集SST(2010-03-12更新)
【最近更新】2010-03-12
【内容简介】
This is a small collection of Win32 console programs (command-line utilities) to assist with Cmd.exe shell scripting in Windows NT 4.0 and later. Documentation is provided in PDF format.
1. CCase
CCase 在命令行下的帮助说明如下:
——————————————————————————————————————————
CCase 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: ccase [-u | -l]
-u Converts to uppercase (default).
-l Converts to lowercase.
Converts each line of standard input to upper or lowercase.
——————————————————————————————————————————
CCase 命令的作用是将一串英文的字符转变大小写的命令。
可以使用-u参数将一串英文字符转换成大写的形式,使用-l参数将一串英文字符转换成小写的形式。看下面的例子:
echo hello,www.cn-dos.net. | ccase -u
屏幕就会显示
HELLO,WWW.CN-DOS.NET
echo Hello,EVERYone. | ccase -l
屏幕就会显示
hello,everyone.
echo set | ccase -l
屏幕就会显示各个环境变量字串的小写形式了。
这个命令比较简单,大家应该很容易掌握。
2. ColorX
ColorX 与CMD里面的color命令的作用差不多,都是设置屏幕显示颜色的。但是相比color命令,功能得到增强了。
ColorX 命令在命令行下的帮助说明如下:
——————————————————————————————————————————
ColorX 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: colorx [-c color | [-f fg] [-b bg]]
or: colorx -l
-c Specifies a color (01-FE).
-f, -b Specifies foreground and background colors (0 through F).
-l Lists available colors in a table.
When specifying colors, the foreground color cannot match the background color.
If you specify -c, you cannot specify -f or -b (and vice versa).
Without arguments, ColorX echoes the current color.
——————————————————————————————————————————
先介绍一下这个-l参数,它可以在屏幕上显示命令行环境下的各个字体颜色和背景颜色所对应的字符组合的列表。
直接在命令行下键入
colorx -l
就可以查看到这个列表了。
知道了这个列表后,就可以根据上面的字符设置各种颜色组合了,是屏幕看起来比较符合个人口味。
比如在命令行下键入
colorx -c 4F
就可以将屏幕颜色设置成红色背景,白色字符的显示效果了。
还可以用-f fg -b bg参数分别指定字符颜色和背景颜色了。
比如在命令行下键入
colorx -f c -b e
就可以将屏幕颜色设置成红色字符,黄色背景的显示效果了。
键入不带参数的colorx命令,可以显示当前的颜色设置。
值得注意的是,字符颜色和背景颜色不能设置成一样的数值,否则设置将不起任何作用。
这个colorx命令是color命令的增强版,相信也不难掌握吧?
3. SleepX
SleepX 可以实现延时功能,而且有很好的延时精度,可以精确到毫秒(ms),是一个不错的延时小工具。
SleepX 在命令行写的帮助说明如下:
——————————————————————————————————————————
SleepX 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: sleepx [-k] [-m] [-p prompt] delay
-k Abort the delay and return a non-zero exit code if a key is pressed.
-m Delay is specified in milliseconds rather than seconds.
-p Displays the specified prompt. Use quotes if it contains spaces or tabs.
——————————————————————————————————————————
下面来介绍一下它的基本用法和参数的使用。
最基本的用法就是命令后面接一个表示秒数的数字,表示要延时的时间长度。
比如在命令行下键入
sleepx 10
就可以起到延时10秒钟的效果,按其他的键延时不会被中断(除非用了Ctrl+C等强制退出的组合键)。
再来看看这个-k参数,sleepx 加上这个参数之后,在延时的过程中,就可以按任意键退出延时了,而且返回的退出码是非零的。如果在延时的过程中没有按任何键,那么将按后面指定的数值进行延时,经过指定的时间,延时自动中断。
比如在命令行键入
sleepx -k 11
如果中间没有按任何键,它将延时11秒钟后自动退出。如果按了任意一个键,延时将被中断,同时返回一个非零的返回码。
-m参数就是指定后面表示时间的数字是以毫秒为单位的,就是精确到毫秒了。
比如我们在命令行下面键入
sleepx -m 500
将延时半秒钟。
-p参数可以指定延时过程中的提示信息,有点像“set /p a=请输入一个字符”的效果。
比如下面这个
sleepx -p 正在处理中…… -m 5000
将延时5秒种,而显示"正在处理中……"的提示信息在屏幕。
当然几个参数可以一起来用。
sleepx -k -m -p 谢谢使用. 7
4. Str
Str 是一个处理字符串的小工具,可以实现大小写之间的互换以及判断字符个数等几个小功能。
来看看它的命令行帮助信息吧:
——————————————————————————————————————————
Str 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: str [-c | -l | -u] string
or: str [-i] -p string1 string2
-c Echoes the number of character in string (count).
-l Echoes the specified string in lowercase.
-u Echoes the specified string in uppercase.
-p Echoes the starting position of string2 in string1 (-1 = not found).
-i Specifies a case-insensitive comparison (must appear before -p).
——————————————————————————————————————————
先看看-c参数。使用了-c参数可以得到指定的字符串的字符个数。
比如这个
str -c WWW.cn-dos.NET\forum
将返回20。
-l 和 -u 参数的作用是返回指定字符串的小写形式和大写形式。
比如
str -l WWW.cn-dos.NET\forum
将返回"www.cn-dos.net\forum"字符串。
str -u WWW.cn-dos.NET\forum
将返回"WWW.CN-DOS.NET\FORUM"字符串。
-p 参数的作用是判断"string2"在"string1"中第一次出现的位置。
比如这个
str -p WWW.cn-dos.net\forum f
将返回"15",如果没有找到的话,就返回"-1",如果想忽略大小写问题,那么要加上"-i"这个参数了。值得注意的是,"-i"参数必须放在"-p"参数的前面。
5. Tee
这个小工具可以将键盘输入的内容写入指定的文件中。个人感觉有点像"copy con filename"命令的效果。
先看看其命令行帮助信息吧:
——————————————————————————————————————————
Tee 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: tee [-a] filename
-a Append to file (don't overwrite)
Writes each line from standard input to standard output and to the specified
file.
If Tee fails to open the specified file, it will write an error message to
standard error and it will return an exit code equal to the error number.
——————————————————————————————————————————
它的用法很简单,就是 Tee 后面直接跟一个文件名,表示要将键盘输入的内容存进指点的文件中。
比如这个
tee cndos.txt
回车之后,就可以用键盘输入内容了,同时在屏幕里面显示输入的内容。输入完了就按F6键,然后回车就可以将你从键盘输入的内容都保存在cndos.txt的文件中去了。
因为这个tee默认是覆盖掉指定文件的内容的,所以如果不想覆盖已有文件中的内容,可以加上 "-a" 这个参数。
大家还可以利用这个小工具,将一些不可见字符写进指定的文件,具体的大家可以自己试试。
6. FInfo
从字面来看,FInfo 是文件信息(File information)的意思,它可以统计文件的基本信息,比如创建日期,文件大小,路径等等。
还是来看看 FInfo 的命令行帮助如下:
——————————————————————————————————————————
FInfo 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: finfo [-d format] [-f | -p | -n] [-t] [-z [-s]] filename [...]
-d Specifies the date/time format.
-f Outputs full pathname(s).
-p Outputs path name(s) only.
-n Outputs filename(s) only.
-t Outputs last modification date(s)/time(s) as number(s).
-z Outputs file size(s) (up to 2GB).
-s Inserts thousands separators in the size(s).
——————————————————————————————————————————
从它的帮助信息不难看出每个参数的意思,下面我就来举几个例子来简单的说明这个小工具的作用吧。
finfo -d yyyy-mm-dd c:\windows\hh.exe
将返回 c:\windows\hh.exe 上次修改日期,其格式形如 2005-12-15 ,当然如果指定的 -d 的参数是这样的 -d yyyy年mm月dd日 也可以,返回的格式也就是你指定的这样格式了,返回 hh.exe 上次修改的日期格式就是 2005年05月27日 ,这个 -d 参数很灵活,大家可以自己去尝试一下别的格式。
-f -p -n 分别是返回指定文件的完整路径(路径+文件名)、路径、文件名。
例如:"finfo -p c:\windows\explorer.exe"返回的就是"C:\windows\",可以同时指定这三个参数,但是返回的是指定的最前面一个的参数对应的信息。比如:"finfo -n -f -p c:\windows\explorer.exe"返回的是"explorer.exe"
-t 参数返回的是文件最修改日期的数字格式。
-z 参数返回文件的大小,带上-s参数就在返回的文件大小中带有千分位分隔符。
例如:
finfo -d yyyy-mm-dd -z -s -n *.*
将返回当前目录中所有文件的详细信息。
7. EchoX
这个 EchoX 是对echo命令的一个增强,它可以以多种样式在命令行环境下的显示执行的字符,功能比较强大。来看看他的命令行帮助:
——————————————————————————————————————————
EchoX 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: echox [-c color | [-f fg] [-b bg]] [-n] [-w width [-r | -e]] message
or: echox -l
-c Specifies a color (01-FE).
-f, -b Specifies the foreground and background colors (0 through F).
-n Do not skip to the next line.
-w Specifies the message should be 'width' characters wide.
-r Right-aligns the message with respect to the specified width.
-e Centers the message with respect to the specified width.
message The text to be displayed.
-l Lists available colors in a table.
When specifying colors, the foreground color cannot match the background color.
If you specify -c, you cannot specify -f or -b (and vice versa).
The message can contain the following escape sequences: ~n (return), ~r (line
feed), and ~t (tab). To display a literal '~' if it's followed by n, r, or t,
use '~~'. Escape sequences are ignored if -w is specified.
——————————————————————————————————————————
首先,我们可以使用-l 参数来看看它的颜色编码,可以在命令行键入"echox -l"。
可以看出和上面的 ColorX 的颜色编码是一样的。
-c 参数指定字体颜色和背景颜色。比如 echox -c ce "www.cn-dos.net/forum" 可以在红色背景上显示黄色的 www.cn-dos.net/forum 。
-f、-b 参数分别指定字体颜色和背景颜色。
-n 参数表示不换行的意思,在for循环里面比较常用。
-w 参数表示指定的字符在命令行显示的宽度,后面直接跟一个表示宽度的数字就可以了。
-r -e 参数分别表示居右,居中显示,缺省是居左显示的。
举个例子: for /l %i in (9,-1,0) do @echox -c %i1 -n -r -w 30 "Www.cn-dos.neT"
有兴趣的朋友可以多研究一下,可以做出很多好玩的东东。 =_+
8. LineX
这个工具可以对屏幕的输出以及指定的文件进去筛选操作,是个比较理想的文件"行筛选器"。它可以完成用很多批处理代码才能完成的任务。
先来看看它的命令行帮助吧:
——————————————————————————————————————————
LineX 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: linex -c | -n | -l n [-e n] | -h n | -t n | -r
-c Counts the number of lines in standard input.
-n Outputs standard input with line numbers.
-l Outputs line n from standard input.
-e Also Outputs the next n lines.
-h (Head) Outputs the first n lines of standard input.
-t (Tail) Outputs the last n lines of standard input.
-r Outputs in reverse order. Can only be used alone or with -n.
——————————————————————————————————————————
大家可能看一下这个帮助就清楚了每个参数的作用,我还是照顾一下E文不好的朋友 : ) (我的E文也很菜的 =_=)
-c 参数的作用是返回标准输入的行数。
-n 作用有点像 findstr 的 /n 参数一样,他返回行的同时也返回行号。
-l 参数可以返回指定的行的内容,比如: type c:\boot.ini | linex -l 4 可以返回 boot.ini 文件中第四行的内容。加上 -e 参数,就可以显示用 -l 指定的行的下几行内容了。
-h 参数返回指定行以及其上的所有的行。
-t 参数则与 -h 参数相反,他返回的是指定的行以及其下的所有行。
-r 参数则逆序显示。它只能单独使用或者与 -n 参数一起使用。
需要注意的是,LineX 是把全部输入都加载到内存里面,所以如果操作的字节数太大的话,就会很慢了。
9. DriveX
这个小工具可以来判断驱动器的类型。先来看看它的命令行帮助:
——————————————————————————————————————————
DriveX 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: drivex [-d drive] [-l type] [-v]
-d The exit code will be equal to the type of the specified drive. Specify 0
for the current drive (use -v to list drive types). An invalid drive will
return an exit code of 1.
-l Outputs a list of drives of the specified type (use -v to list drive
types).
The exit code will equal the number of drives.
-v Lists available drives and types.
——————————————————————————————————————————
首先用 drivex -v 来看看驱动器类型和对应的说明,我的所有驱动器如下所示:
Drive Type Description
-----------------------------
A: 2 Removable
C: 3 Fixed
D: 3 Fixed
E: 3 Fixed
F: 3 Fixed
G: 5 CD-ROM
其中没有4和6,4代表的是网络驱动器(Remote Network),6代表RAM Disk.
-d 参数是根据指定的盘符来判断它的类型,如果你的C盘是固定磁盘,那么执行 DriveX -d c: ,就会使返回错误码(%errorlevel%的值)变为3,如果C盘是CD-ROM,那么执行上面的语句就会返回错误码为5的CODE。如果指定盘符不存在,那么返回码就为1。-d 后面也可以指定为0,它代表当前路径所在的盘符。
-l 参数根据上面 Type 的数值,返回驱动器。比如输入 DriveX -l 3 ,就回返回所有类型为3(固定磁盘)的驱动器。
10. DateX
Datex 命令可以说是CMD里面的date和time命令的增强版,它能显示系统日期和时间,但不能设置系统日期和时间。
DateX 命令在命令行下的帮助说明如下:
——————————————————————————————————————————
DateX 2.5 - (C) 2004-2006 by Bill Stewart ([email]bstewart@iname.com[/email])
Usage: datex [-d date] [-f format] [-i num] [-o offset] [-t]
-d Specifies a date.
-f Specifies the format for the date.
-i Output the date represented by the specified number (inverse of -t).
-o Specify a number-of-days difference.
-t Output the date as a number for comparison purposes.
Without arguments, DateX prints the current date and time.
——————————————————————————————————————————
-d 参数指定日期。
-f 参数是指定输出的日期时间格式的,比如: datex -f "[yyyy]年[mm]月[dd]日 hh时mm分ss秒" ,就可以返回类似 [2006]年[11]月[17]日 14时03分41秒 的格式了。这个格式可以灵活的变换。
-i 参数是根据指定的整数,返回一个日期时间类型的值,比如: datex -i 12344567 ,可以返回类似 1980-05-28 11:39:46 的字符串。-t 参数则根据指定的日期返回一个数,与 -i 相反还没有研究到是什么规律。望高手指点。
-o 参数则返回当前日期之前或者后数天的日期时间。比如今天是2006-11-17,那么执行 datex -o 2 就得到 2006-11-19 13:49:06 类似的信息,-o 后面也可以指定负数,这里就不多说了。
有的参数可以组合使用。
原帖地址:http://www.cn-dos.net/forum/viewthread.php?tid=24175
【官网下载】http://www.westmesatech.com/sst.html |
-
1
评分人数
-
|