set命令详解(二)【共两篇】
https://blog.csdn.net/mt15306338066/article/details/127281985
命令格式
set [ [/a] [/p] [ variable= [string] [expression] ]
命令功能
set 命令用于显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境的所有的变量定义。
variable = string 格式
【variable参数】
指定需要定义或修改的变量名。
1、
variable
可以以字母或一些特殊字符(如:“#”)开头
示例
C:\>set #first=88
C:\>echo %#first%
88
C:\>
2、在dos命令行环境中,
variable
可以为单独的数字,也能以数字开头(例如:set 8var=66)。但是批处理文件中,变量名不能以数字开头,否则会发生“歧义”。
示例
demo.bat的内容如下:
::demo.bat
@echo off
set 1=book
echo %1
:: %1%被解析为%1(demo.bat的第一个参数)和%(在批处理中,不成对的"%"会被解析为空)两部分
echo %1%xyz
运行
C:\>demo one
one
onexyz
C:\>set 3=desk
C:\>echo %3% // 在dos命令行环境中,variable可以为单独的数字,也能以数字开头
desk
C:\>echo %#var% // variable可以为一些特殊字符开头
good
C:\>
3、
variable
可以包括一些特殊字符(如:“#”、“?”等等)
示例
C:\>echo %one?two%
200
C:\>set one?=300
C:\>echo %one?%
300
C:\>
4、
variable
开头的空白会被忽略(不作为变量名称的一部分),variable中间、末尾的空白都作为变量名称的一部分。
C:\>C:\>set " var=book"
C:\>echo % var%
% var%
C:\>echo %var%
book
C:\>set begin end=good
C:\>echo %begin end%
good
C:\>set var =desk
C:\>echo %var %
desk
C:\>
5、variable
支持转义字符。
示例
C:\>set my^ env=first
C:\>echo %my env%
first
C:\>set ab^c=200
C:\>echo %abc%
200
C:\>set ^&=one
C:\>echo %&%
one
C:\>
6、variable
两边加引号不是定义变量,而是显示以变量名开头的所有变量
示例
C:\>set myvar=book
C:\>set "myvar"=desk
myvar=book
C:\>set myvar
myvar=book
C:\>
【
string参数
】
1、string
用于指定变量值,位于
string
开头的、中间的、末尾的空白都作为变量值的一部分
示例
2、string
支持转义字符
C:\>set myvar="red" // 变量值中包含某些特殊字符(例如这里的双引号)时,可以不转义
C:\>echo 12%myvar%34
12"red"34
C:\>set a=^&^|^<^> // 变量值中包含某些特殊字符(例如 & | < >)时,必须转义
C:\>echo %a%
此时不应有 |。
C:\>set a
a=&|<>
C:\>set var=a^bc //转义变量值中的字符 b
C:\>echo %var%
abc
C:\>
“variable = string”
格式和
variable = string
格式的区别
“variable = string”
格式中,
variable
和
string
都不支持转义字符,而
variable = string
格式中,
variable
和
string
都支持转义字符。除此以外,
“variable = string”
格式和
variable = string
格式是等价的。示例如下:
C:\>set "^&^|^<^>=book"
C:\>set ^^
^&^|^<^>=book
C:\>echo %^&^|^<^>%
book
C:\>set "var=^&^|^<^>"
C:\>set var
var=^&^|^<^>
C:\>echo %var%
&|<>
C:\>
【/P
参数
】
将用户输入作为
variable
的变量值,
“=”
后的字符串作为提示文本,该字符串开头的空白会被忽略,中间、末尾的空白会作为提示文本的一部分,提示文本可以为空
示例
C:\>set /p number= please input one number: // “:”后面存在三个空格
please input one number: 8
C:\>echo %number%
8
C:\>set /p number=
9
C:\>echo %number%
9
C:\>
写作不易,如果您觉得对您有用,请
“在下面一圈三连”
。