WindowsNT Command Shell 简记和参考资料

文章内容基本上试摘自以下两篇文章,仅当自学,具体的例子可以参看下边两篇文章。

[url=http://technet.microsoft.com/en-us/library/bb490954.aspx]WindowsXP Command Shell Overview[/url]
[url=http://technet.microsoft.com/en-us/library/cc723564.aspx]The WindowsNT Command Shell[/url]

[size=large][b]另外一个十分有用的网站:[url=http://commandwindows.com/]http://commandwindows.com/[/url][/b][/size]
[size=large][b]一些高级用法的语法说明和例子:[url=http://ss64.com/nt/syntax.html]http://ss64.com/nt/syntax.html[/url][/b][/size]
[size=large][b]还有WMIC:[url=http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/wmic.mspx?mfr=true]Windows Management Instrumentation Command-line[/url][/b][/size]

[size=large][b]前言[/b][/size]
[url=http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true]这里是cmd.exe本身的帮助[/url]
NT系统中的[b]command.com[/b]是为了兼容MSDOS的[b]16位[/b]程序(壳),它会自动启动并发送命令给cmd.exe执行。
命令行帮助(/?)中的语法:
[list]
[*]… 表示可以重复的单元
[*][] 表示可选
[*]{} 表示可供选择的集合
[/list]
[size=large][b]在cmd.exe程序中的编辑命令[/b][/size]
[list]
[*]F4 随着你的下一个输入,从当前光标处删除至行尾,并插入新的输入
[*]F7 弹出命令历史菜单(可以继续使用F9,选择命令序号)
[*]F8 先输入你想要调用的命令(须存在于历史中),再按F8进行快速搜索匹配
[*]Tab 自动完成键
[*]Ctrl+D 自动完成目录
[*]Ctrl+F 自动完成文件名
[/list]
[size=large][b]命令行的语法结构[/b][/size]
Prompt + 命令名 + 参数表(通常使用空格做分隔符)
如果参数中含有分隔符就需要用双引号,如果有双引号就再套一层双引号

多个命令和条件执行:
[list]
[*]& 两个命令的连接符
[*]&& 当前一个命令成功才执行第二个命令
[*]|| 当前一个命令失败才执行第二个命令
[*]() 命令嵌套,另一种做法是使用cmd命令,但是需要多一次exit
[*];或, 命令的参数分隔符
[/list]
特殊字符:
[list]
[*]& 命令连接符
[*]| 管道符
[*]() 嵌套符
[*]<> 管道符
[*]^ 转义符
[*]" 字符串的开始,例如new^&name等价于"new&name"
[/list]
[size=large][b]环境变量[/b][/size]
分为系统和本地环境变量,这里的系统指作用于整个操作系统的环境变量,而本地环境变量仅作用于此cmd.exe实例,cmd.exe将自动集成其父进程的环境变量。[url=http://technet.microsoft.com/en-us/library/bb490954.aspx]这里[/url]是WinNT系统中的系统定义环境变量。下边按加载顺序列出环境变量(同文件的搜索路径):
1.Built-in system variables
2.System variables found in the HKEY_LOCAL_MACHINE hive
3.Local variables found in the HKEY_CURRENT_USER hive
4.All environment variables and paths set in the Autoexec.bat file
5.All environment variables and paths set in a logon script (if present)
6.Variables used interactively in a script or batch file

[size=large][b]命令行输出结果的控制[/b][/size]
[list]
[*]REM 注释指令,后边可跟任意字符,本身什么也不做
[*]CLS 清屏
[*]COLOR 调色
[*]TITLE 命令行的窗口标题
[*]ECHO 命令(回馈)显示的全局开关
[*]@ 当行echo off(写在其后的脚本命令在执行时会被隐藏起来)
[/list]
[size=large][b]管道(重定向)[/b][/size]
命令输入默认为键盘输入,命令输出默认为命令窗口输出,命令错误输出默认为命令窗口输出。这是命令的三种流,shell提供管道,可以使这三种流重定向。[url=http://technet.microsoft.com/en-us/library/bb490982.aspx]详细说明看这里[/url]
[list]
[*]>file 输出到指定文件,也可使用设备名
[*]>>file 输出,如果文件已存在就追加在其后
[*]<file 从指定文件输入
[*]2>file 从定向错误输出到指定文件,之前文件中的内容会丢失
[*]2>&1 从定向错误输出到当前命令的输出环境
[*]cmd1 | cmd2 cmd1的输出作为cmd2的输入
[/list]
[size=large][b]命令过滤(Command Filter)[/b][/size]
尽管可以使用管道,但有些命令的最高效的执行方式莫过于使用命令过滤,即仅提取命令结果中自己需要的那个部分。WindowsNT提供了三种过滤器:
[list]
[*]MORE 用于将命令结果分页,dir | more, more < list.txt
[*]SORT 将命令结果按字母-数字序排序,dir | sort /+3, find "Jones" maillst.txt | sort
[*]FIND 过滤包含特殊字串的行, dir | find "<DIR>" /c, find "Pacific Rim" < trade.txt > nwtrade.txt
[/list]
[size=large][b]使用变量[/b][/size]
变量以%开始,如把下边命令存为.bat文件 “makelist.bat”:
dir %1 > %2
在命令行中输入: \文件路径\makelist SrcFolderPath DstFolderPath\list.txt
SrcFolderPath会取代%1, DstFolderPath会取代%2。
更多信息请参考: set /?

[size=large][b]使用条件表达式[/b][/size]
内容候补,更多信息请参考:
[list]
[*]if /?, 仔细看帮助你会发现这里可以使用字符串比较
[*]for /?,仔细看看帮助,for应该是最有用的命令之一,字符串、路径解析都用它
[/list]
[size=large][b]字符串处理[/b][/size]:
注意,后两种情况中使用了负号'-'
[list]
[*]%variable:~num_chars_to_skip%
[*]%variable:~num_chars_to_skip,num_chars_to_keep%
[*]%variable:~num_chars_to_skip, -num_chars_to_skip%
[*]%variable:~-num_chars_to_skip,num_chars_to_keep%
[/list]
例子: mkdir "%date:~0,3% %date:~4,2%-%date:~7,2%-%date:~-4,4%"
会建立一个名叫“Fri 10-27-2006”的文件夹,其中显示'Fri'还是'星期五',依赖于系统设置

[size=large][b]命令计划 (Command Scheduler)[/b][/size]
即使没有用户会话,Schedule也会如期执行,并且可以进行远程计划调度。
Schedule Service以Local System账户登录计算机,而该账户有很多权限限制,如不能访问网络驱动器。因为不和用户关联,所以很多用户设置并不能在Schedule Service中使用,如用户设置的环境变量。
解决方法:对于第一种情况,可以为schedule service建立专有账户,并赋予一定的权限,之后在脚本中使用net use命令(使用前边设置好的账户)进行路径映射。对于第二种情况,可以使用[url=http://www.google.cn/search?q=unc+path]UNC路径[/url]
[list]
[*]AT 在指定的时间执行指定的脚本
[/list]
[size=large][b]文件类型关联命令[/b][/size]
[list]
[*]FTYPE 关联、编辑文件类型和启动命令表达式
[*]ASSOC 关联后缀与文件类型
[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值