⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 批处理字符解释.txt

📁 bat教程
💻 TXT
📖 第 1 页 / 共 2 页
字号:
使用多个命令和条件处理符号
使用条件处理符号可以从单个命令行或脚本运行多个命令。通过条件处理符号运行多个命令时,条件处理符号右边的命令根据条件处理符号左边的命令结果来发挥作用。例如,只有在前一个命令失败的情况下,才可能需要运行一个新命令。或者,只有在前一个命令成功时才可能需要运行一个新命令。
可以使用下表列出的特殊字符来传递多个命令。
字符	语法	定义
& [...]	command1 & command2	用来分隔一个命令行中的多个命令。Cmd.exe 运行第一个命令,然后运行第二个命令。
&& [...]	command1 && command2	只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令运行成功时才运行第二个命令。
|| [...]	command1 || command2	只有在符号 || 前面的命令失败时,才用于运行符号 || 后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令未能运行成功(接收到大于零的错误代码)时才运行第二个命令。
( ) [...]	(command1 & command2) 	用来分组或嵌套多个命令。
; 或者 ,	command1 parameter1;parameter2	用来分隔命令参数。
 注意
	“与”符号 (&)、管道符号 (|) 以及括号 () 是特殊字符,将它们作为参数传递时,必须在其前面加上转义字符 (^) 或引号。 
	如果某个命令成功完成操作,则该命令就返回零 (0) 退出代码或不返回任何退出代码。有关退出代码的详细信息,请参阅 Microsoft Windows Resource Kit。 
嵌套命令行解释器
通过在命令提示符打开 Cmd.exe 新的实例,可以在 Cmd.exe 内嵌套命令行解释器。默认情况下,Cmd.exe 的每个实例继承其父 Cmd.exe 应用程序的环境。通过嵌套 Cmd.exe 的实例,可以更改本地环境,而不会影响 Cmd.exe 的父应用程序。这使您能够保留 Cmd.exe 的原始环境,并在终止嵌套的命令行解释器之后返回到原始环境。但是在嵌套的命令行解释器中所作的更改将不会被保存。
要嵌套命令行解释器,请在命令提示符下键入: 
cmd
显示类似于下面内容的消息:
Microsoft (R) Windows XP (TM)
(C) Copyright 1985-2001 Microsoft Corp. 
要关闭嵌套的命令行解释器,请键入 exit。
使用 setlocal 和 endlocal 命令,甚至可以在 Cmd.exe 的实例中(或在脚本中)进一步将更改本地化。Setlocal 创建本地作用范围,而 endlocal 终止本地作用范围。在 setlocal 和 endlocal 作用范围内所作的更改将会被放弃,从而保持未更改的原始环境。可以将这两个命令嵌套到最高 32 级。有关 setlocal 和 endlocal 命令的详细信息,请参阅 Setlocal 和 Endlocal。
将环境变量与 Cmd.exe 一起使用
Cmd.exe 命令行解释器环境由确定命令行解释器和操作系统的行为的变量进行定义。可以使用两种类型的环境变量(系统和本地)来定义命令行解释器环境或整个操作系统环境的行为。系统环境变量定义全局操作系统环境的行为。本地环境变量定义 Cmd.exe 当前实例的环境的行为。
系统环境变量存在于操作系统之中,并可用于所有 Windows XP 进程。只有具有管理特权的用户才可以更改系统变量。这些变量最常用于登录脚本。
只有在为其创建了本地环境变量的用户登录到计算机时,这些本地环境变量才有效。HKEY_CURRENT_USER 配置单元 中设置的本地变量只对当前用户有效,但它们可定义全局操作系统环境的行为。
下表按降序顺序描述各种类型的变量:
1.	内置系统变量 
2.	在 HKEY_LOCAL_MACHINE 配置单元中找到的系统变量 
3.	在 HKEY_CURRENT_USER 配置单元中找到的局部变量 
4.	在 Autoexec.bat 文件中设置的所有环境变量和路径 
5.	在登录脚本(如果有的话)中设置的所有环境变量 
6.	在脚本和批处理文件中交互使用的变量 
在命令行解释器中,Cmd.exe 的每个实例都继承其父应用程序的环境。因此,可以在不影响父应用程序环境的情况下更改新的 Cmd.exe 环境中的变量。
下表列出 Windows XP 的系统和局部环境变量。
变量	类型	说明
%ALLUSERSPROFILE%	局部	返回所有“用户配置文件”的位置。
%APPDATA%	局部	返回默认情况下应用程序存储数据的位置。
%CD%	局部	返回当前目录字符串。
%CMDCMDLINE%	局部	返回用来启动当前的 Cmd.exe 的准确命令行。
%CMDEXTVERSION%	系统	返回当前的“命令处理程序扩展”的版本号。
%COMPUTERNAME% 	系统	返回计算机的名称。
%COMSPEC% 	系统	返回命令行解释器可执行程序的准确路径。
%DATE% 	系统	返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。%ERRORLEVEL% 	系统	返回最近使用过的命令的错误代码。通常用非零值表示错误。
%HOMEDRIVE% 	系统	返回连接到用户主目录的本地工作站驱动器号。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
%HOMEPATH% 	系统	返回用户主目录的完整路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
%HOMESHARE% 	系统	返回用户的共享主目录的网络路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
%LOGONSEVER% 	局部	返回验证当前登录会话的域控制器的名称。
%NUMBER_OF_PROCESSORS% 	系统	指定安装在计算机上的处理器的数目。
%OS% 	系统	返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT。
%PATH%	系统	指定可执行文件的搜索路径。
%PATHEXT%	系统	返回操作系统认为可执行的文件扩展名的列表。
%PROCESSOR_ARCHITECTURE% 	系统	返回处理器的芯片体系结构。值: x86,IA64。%PROCESSOR_IDENTFIER%	系统	返回处理器说明。
%PROCESSOR_LEVEL% 	系统	返回计算机上安装的处理器的型号。
%PROCESSOR_LEVEL%	系统	返回处理器的版本号。
%PROMPT%	局部	返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
%RANDOM%	系统	返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
%SYSTEMDRIVE%	系统	返回包含 Windows XP 根目录(即系统根目录)的驱动器。
%SYSTEMROOT% 	系统	返回 Windows XP 根目录的位置。
%TEMP% and %TMP%	系统和用户	返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP。
%TIME%	系统	返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。%USERDOMAIN%	局部	返回包含用户帐户的域的名称。
%USERNAME%	局部	返回当前登录的用户的名称。
%UserPrefix%	局部	返回当前用户的配置文件的位置。
%WINDIR%	系统	返回操作系统目录的位置。
设置环境变量
使用 set 命令创建、更改、删除或显示环境变量。set 命令只更改当前解释器环境中的变量。
要查看变量,请在命令提示符下键入:
set all
要添加变量,请在命令提示符下键入:
set variablename=value
要删除变量,请在命令提示符下键入:
set [no]d2
可以将大多数字符用作变量值,其中包括空格。如果使用特殊字符 <、>、|、& 或 ^,则必须在它们前面加上转义字符 (^) 或引号。如果使用引号,则必须将引号作为值的组成部分,因为等号后面的任何内容都会被视为值。请考虑下列范例:
?	要创建变量值 new&name,请键入: 
set varname=new^&name
?	要创建变量值 "new&name",请键入: 
set varname="new&name"
?	如果在命令提示符下键入 set varname=new&name,就会出现与下面内容类似的错误消息: 
"'name' is not recognized as an internal or external command, operable program or batch file."
变量名不区分大小写。但是,set 显示的变量与您键入的完全相同。可以在变量名中结合使用大写字母和小写字母,这样可以使代码更具有可读性(例如, UserName)。
 注意
?	最大单个环境变量大小为 8192 字节。 
?	所有变量的最大环境变量的总和大小(包括变量名和等号)为 65,536 KB。 
使用命令重定向操作符 (Redirection Operators)
可以使用重定向操作符将命令输入和输出数据流从默认位置重定向到不同的位置。输入或输出数据流的位置即为句柄。
下表列出了可用于将命令输入和输出数据流进行重定向的操作符。
重定向操作符	说明
>	将命令输出写入到文件或设备(例如打印机)中,而不是写在命令提示符窗口中。
<	从文件中而不是从键盘中读入命令输入。
>>	将命令输出添加到文件末尾而不删除文件中的信息。
>&	将一个句柄的输出写入到另一个句柄的输入中。
<&	从一个句柄读取输入并将其写入到另一个句柄输出中。
|	从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。
默认情况下,可以从键盘将命令输入(即 STDIN 句柄)发送到 Cmd.exe,然后由 Cmd.exe 将命令输出(即 STDOUT 句柄)发送到命令提示符窗口。
下表将列出可用的句柄。
句柄	句柄的数字代号	说明
STDIN	0	键盘输入
STDOUT	1	输出到命令提示符窗口
STDERR	2	错误输出到命令提示符窗口
UNDEFINED	3-9	这些句柄由应用程序和各个具体工具单独定义。
数字 0 到 9 代表前 10 个句柄。可以使用命令 Cmd.exe 运行程序并将前 10 个句柄中的任何一个重定向到该程序。要指定想使用的句柄,可在重定向操作符前面键入该句柄的数字。如果未定义句柄,则默认的 < 重定向输入操作符是 0,而默认的 > 重定向输出操作符是 1。键入 > 或 < 操作符之后,必须指定要读取或写入数据的位置。可以指定文件名或另一个现有的句柄。
要指定重定向到现有句柄,请使用与 (&) 字符,后面接要重定向的句柄号(例如 &句柄#)。例如,下面的命令可以将句柄 2(即 STDERR)重定向到句柄 1(即 STDOUT):
1<&2
复制句柄 
重定向操作符 & 可以将输出或输入从一个句柄复制到另一个指定的句柄。例如,要将 dir 输出发送到 File.txt 并将错误输出发送到 File.txt,请键入:
dir>c:\file.txt 2>&1
复制句柄时,可以复制该句柄原状态的所有特性。例如,如果一个句柄具有只读访问的属性,则该句柄的所有副本都具有只读访问属性。不能将一个具有只读访问属性的句柄复制为另一个具有只写访问属性的句柄。
重定向命令输出 (<)
要从键盘或设备重定向命令输出,请使用 < 操作符。例如,要从 File.txt 得到 sort 命令的命令输入,请键入: 
sort<file.txt 
File.txt 的内容将以字母顺序列表的方式显示在命令提示符窗口中。
< 操作符可以打开具有只读访问的指定文件名。所以,不能使用该操作符向文件中写入信息。例如,如果以 <&2 启动程序,则所有试图读取句柄 0 的操作都将失败,因为句柄 2 最初是以只读访问打开的。
 注意
?	0 是 < 重定向输入操作符 > 的默认句柄。 
重定向命令输出 (>)
几乎所有的命令都将输出发送到命令提示符窗口。即使将输出发送到驱动器或打印机的命令也会在命令提示符窗口显示消息和提示。
要将命令输出从命令提示符窗口重定向到文件或设备,请使用 > 操作符。可以在许多命令中使用该操作符。例如,要将 dir 输出重定向到 Dirlist.txt,请键入: 
dir>dirlist.txt 
如果 Dirlist.txt 不存在,Cmd.exe 将创建该文件。如果 Dirlist.txt 存在,Cmd.exe 将使用 dir 命令的输出替换文件中的信息。
要运行 netsh routing dump 命令,然后将命令输出发送到 Route.cfg,请键入:
netsh routing dump>c:\route.cfg
> 操作符可以打开具有只写访问属性的指定文件。所以,不能使用该操作符读取文件。例如,如果使用重定向 >&0 启动程序,则所有试图写入句柄 1 的操作都将失败,因为句柄 0 最初是以只读访问大开的。
 注意
?	1 是 > 重定向输出操作符的默认句柄。 
使用 <& 操作符重定向输入和复制
要使用重定向输入操作符 <&,指定的文件必须已经存在。如果输入文件存在,Cmd.exe 将以只读方式打开该文件,然后将文件中作为输入的字符发送到此命令(如同从键盘输入一样)。如果指定了句柄,Cmd.exe 将指定的句柄复制到系统现有的句柄中。
例如,要以句柄 0 输入读取(即 STDIN)的方式打开 File.txt,请键入:
<file.txt
要打开 File.txt,并在内容分类后将输出发送到命令提示符窗口(即 STDOUT),请键入:
sort<file.txt 
要查找 File.txt,然后将句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到 Search.txt,请键入:
findfile file.txt>search.txt 2<&1
要以句柄 0 输入读取(即 STDIN)的方式复制用户定义句柄 3,请键入:
<&3
使用 >& 操作符重定向输出和复制
如果将输出重定向到文件且指定了现有的文件名,Cmd.exe 将以只写方式打开文件并覆盖该文件内容。如果指定了句柄,Cmd.exe 将文件复制到现有句柄中。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -