批处理中的变量引导符 %

来源:互联网 发布:小猪cms 微盟 编辑:程序博客网 时间:2024/06/05 09:29
 ①当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%

例1
@echo off
set str=abc
echo 变量 str 的值是: %str%
pause

在屏幕上将显示这样的结果:
变量 str 的值是: abc
按任意键继续...
-----------------------------------------------------------------------------------------------------

  ②另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10
个数字,如%0、%1、%2 。。。
%0      表示批处理文件本身,包括完整的路径和扩展名
%1至%9  表示第一个参数至第九个参数

例2
@echo off
if defined str goto next
set str=
set /p str=请把文件拉到本窗口后回车:
call "%~0" %str%
pause

:next
cls
echo 本批处理文件完整路径为:"%~0"
echo 拖到本窗口的文件完整路径为:"%~1"
goto :eof
-----------------------------------------------------------------------------------------------------

 ③出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法
略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。

例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0;
如果保存为批处理文件,则此语句将略有改变:

例3
@echo off
set /a num=4%%2
echo 4除以2的余数为 %num%
pause
-----------------------------------------------------------------------------------------------------

④转义符号:如果要显示%本身时,需要在前面用%来转义。

例4
@echo off
echo 一个百分号:%%
echo 两个百分号:%%%%
echo 三个百分号:%%%%%%
pause