今天说说如何使用变量。
在Shell中,可以通过%1来访问命令后面带的第一个参数,以此类推,%9访问命令后的第9个参数,但是没有%10,%9是最后可以访问的参数。而%*是列出传入的所有参数,%0是列出命令本身。那么要是有第十个参数,如何取得啊?这就要用到SHIFT这个命令了。SHIFT命令是把所有参数向左移动一个位置。这样你就可以通过%9来访问第十个参数了。如果参数中的字符串中有空格,一定要把这个参数用双引号引起,否则Shell会认为是两个参数。给变量赋值的语句是SET,用法如下:
SET [Variable=[Value]]
SET /A Expression
SET /P Variable=[MassagePrompt]
其中,/A 后面跟的是数学表达式,如SET /A x = 1 + 2,其中的操作符可以是+,-,*,/,%和+=,-=,*=,/=,%=
下面说说环境变量,环境变量分为2种,一是用户环境变量,一是系统环境变量。这些变量的访问都是%变量名%,如%WINDIR%是Windows的路径。你可以通过SET命令,查看所有的环境变量。注意,在变量赋值的时候,如果存在空格在等号左边,则被认为是变量名的一部分,要是空格出现在等号右边,则被认为是变量值的一部分。所有等号左右两边不应该有空格的出现。而SET /A 则不会存在这样的问题。
下面说如何设置局部变量,是通过SETLOCAL和ENDLOCAL设置的。如
SETLOCAL
SET x=true
ECHO x = %x%
ENDLOCAL
ECHO x = %x%
第一个ECHO会出现x = true,而第二个则是x = 。因为第二个ECHO中的x变量不在赋值的作用域内了。
下面说说对字符串的操作:
替换操作:%VariableName:OriginalString=ReplacementString%,如要替换Hello World中的World为China:
SET x=Hello World
SET y=%x:World=China%
截取操作:%VariableName:~StartPosition,Length%,如要截取Hello中的,He:
SET x=Hello
SET y=%x:~0,2%
今天就看了这么多,明天看条件逻辑