首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

WindowsNT Command Shell 简记跟参考资料

2012-07-04 
WindowsNT Command Shell 简记和参考资料文章内容基本上试摘自以下两篇文章,仅当自学,具体的例子可以参看

WindowsNT Command Shell 简记和参考资料
文章内容基本上试摘自以下两篇文章,仅当自学,具体的例子可以参看下边两篇文章。

WindowsXP Command Shell Overview
The WindowsNT Command Shell

另外一个十分有用的网站:http://commandwindows.com/
一些高级用法的语法说明和例子:http://ss64.com/nt/syntax.html
还有WMIC:Windows Management Instrumentation Command-line

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

多个命令和条件执行:
&两个命令的连接符&&当前一个命令成功才执行第二个命令||当前一个命令失败才执行第二个命令()命令嵌套,另一种做法是使用cmd命令,但是需要多一次exit;或,命令的参数分隔符
特殊字符:
& 命令连接符|管道符()嵌套符<>管道符^转义符"字符串的开始,例如new^&name等价于"new&name"
环境变量
分为系统和本地环境变量,这里的系统指作用于整个操作系统的环境变量,而本地环境变量仅作用于此cmd.exe实例,cmd.exe将自动集成其父进程的环境变量。这里是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

命令行输出结果的控制
REM注释指令,后边可跟任意字符,本身什么也不做CLS 清屏COLOR调色TITLE命令行的窗口标题ECHO命令(回馈)显示的全局开关@当行echo off(写在其后的脚本命令在执行时会被隐藏起来)
管道(重定向)
命令输入默认为键盘输入,命令输出默认为命令窗口输出,命令错误输出默认为命令窗口输出。这是命令的三种流,shell提供管道,可以使这三种流重定向。详细说明看这里
>file输出到指定文件,也可使用设备名>>file输出,如果文件已存在就追加在其后<file从指定文件输入2>file从定向错误输出到指定文件,之前文件中的内容会丢失2>&1从定向错误输出到当前命令的输出环境cmd1 | cmd2cmd1的输出作为cmd2的输入
命令过滤(Command Filter)
尽管可以使用管道,但有些命令的最高效的执行方式莫过于使用命令过滤,即仅提取命令结果中自己需要的那个部分。WindowsNT提供了三种过滤器:
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
使用变量
变量以%开始,如把下边命令存为.bat文件 “makelist.bat”:
dir %1 >  %2
在命令行中输入: \文件路径\makelist SrcFolderPath DstFolderPath\list.txt
SrcFolderPath会取代%1, DstFolderPath会取代%2。
更多信息请参考: set /?

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

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

热点排行