【WINDOWS / DOS 批处理】set命令详解(一)

  • Post author:
  • Post category:其他





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:\>

写作不易,如果您觉得对您有用,请

“在下面一圈三连”



版权声明:本文为mt15306338066原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。