第2章 充分利用命令行

Windows命令行详解手册(第2版)

【美】William R.Stanek 著
王景新 等译
人民邮电出版社
2009年9月第1版

第2章 充分利用命令行

表2-1 命令行的一些关键参数

参数 描述
/C 执行指定的命令,之后退出命令shell
/K 执行指定的命令,之后仍保持交互模式
/A 到文件(或管道)的命令输出设置为ANSI格式(默认设置)
/U 到文件(或管道)的命令输出设置为Unicode格式
/Q 开启静默模式,意味着命令回显被关闭。默认情况下,命令回显是开启的
/T:fg 为控制台窗口设置前台与背景颜色,这时fg是COLOR命令中定义的两个值
/E:ON 激活命令扩展(默认设置)
/E:OFF 禁用命令扩展

2.2 使用命令路径进行工作

  Windows操作系统使用命令路径来定位可执行文件,并根据文件的扩展名来判定文件类型是否为可执行文件。通过使用文件关联技术,可以将特定的应用程序映射为某种文件扩展名。

2.2.1 管理命令路径

  通过PATH命令,可以查看可执行文件的当前命令路径。启动命令shell,在命令行中键入path,按Enter键,可以显示当前的path内容。
  在登陆系统后,命令路径是使用系统与用户环境变量进行设置的,即%PATH%变量。通过SETX命令,可以在系统环境中永久性地改变命令路径。比如,如果想将特定的目录用于脚本与应用程序,就可能需要更新路径信息。要做到这一点,可以使用SETX命令来向已存在的路径中添加一条特定的路径,比如使用命令setx PATH "%PATH%;C:\Scripts"。

2.3.3 标准错误输出的重定向

  默认情况下,命令执行的错误信息会作为输出信息显示在命令行上。然而,在运行某些批处理脚本时,你可能会希望将错误信息输出到一个文件中,以便对错误进行跟踪处理。有一种重定向标准错误的方法是将错误信息写入到标准输出。要做到这一点,可以键入重定向符号2>&1,如下所示:
chkdsk /r > diskerrors.txt 2>&1
  上例中,将标准输出与标准错误都发送到名为diskerrors.txt的文件中,如果你只想保留错误的追踪信息,也可以只对标准错误进行重定向。通过如下命令,可以将标准错误发送到文件中,而标准输出则仍然在命令行中显示:
chkdsk /r 2> diskerrors.txt

2.4.2 命令分组

  当需要执行多条命令时,可能需要将命令分组,以便防止冲突或确保命令以某种顺序执行。命令的分组是通过一组或多组括号实现的。要了解需要进行命令分组的原因,可以考虑这样一个例子。现在要将主机名、IP配置以及网络状态等信息写入到某个文件,所以使用如下语句:
hostname & ipconfig & netstat -a > current_config.log
  然而,检查日志文件时会发现,实际上只有网络状态信息被写入到文件中。之所以会有这种现象,是因为上述命令会以如下顺序执行:
(1)hostname
(2)ipconfig
(3)netstat -a > current_config.log
  由于命令是顺序执行的,因此,系统主机名与IP配置信息在命令行中输出,而只有网络状态信息被写入到日志文件。要将所有这些命令的输出写入到日志文件,可以采用如下方式对命令进行分组:
(hostname & ipconfig & netstat -a) > current_config.log
  通过上面的方式,所有这3条命令的输出被收集在一起,作为一个整体重定向到日志文件中。

posted @ 2023-02-04 15:42  Evan-whc  阅读(51)  评论(0编辑  收藏  举报