[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理中的百分号是什么意思?

“%”这个符号我始终看不懂,不知道什么意思。
有高手指点下吗?谢谢

你写个代码举个例子吧。因为%在批处理中的用法比较多。可能是参数,也可能是变量,还可能是其它的用法。

TOP

  请查看 批处理符号详解 第2点。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

 百分号用在不同的场合,有不同的含义:
  ① 当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%。把以下代码保存为批处理文件,运行后观察屏幕显示结果:
复制内容到剪贴板代码:
@echo off
set str=abc
echo 变量 str 的值是: %str%
pause
  在屏幕上将显示这样的结果:
引用:
变量 str 的值是: abc
按任意键继续...
  另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10个数字,如%0、%1,请看演示代码:
复制内容到剪贴板代码:
@echo off
if defined str goto next
set str=
set /p str=请把文件拉到本窗口后回车:
call "%~0" %str%
pause
exit

:next
cls
echo 本批处理文件完整路径为:"%~0"
echo 拖到本窗口的文件完整路径为:"%~1"
goto :eof
  ② 出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。
  例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0;如果保存为批处理文件,则此语句将略有改变:
复制内容到剪贴板代码:
@echo off
set /a num=4%%2
echo 4除以2的余数为 %num%
pause
  ③ 转义符号:如果要显示%本身时,需要在前面用%来转义。例如:
复制内容到剪贴板代码:
@echo off
echo 一个百分号:%%
echo 两个百分号:%%%%
echo 三个百分号:%%%%%%
pause

TOP

学习了!                 
谢谢~~

TOP

路过学习了..谢谢!

TOP

这个呢?

set time_=%time%
if not %time_:~-4% == 0.00 goto loop
那这里%time_:~-4%就不知道怎么理解了,哪位说一下啊

TOP

回复 8楼 的帖子

仔细看看帮助
set /?
也可以为扩展名指定子字符串。

    %PATH:~10,5%

会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏
移量 10)字符开始的五个字符。如果没有指定长度,则采用默认
值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。

    %PATH:~-10%

会提取 PATH 变量的最后十个字符。

    %PATH:~0,-2%

会提取 PATH 变量的所有字符,除了最后两个。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

楼主辛苦 努力学习中~~~~~~~~

TOP

感谢楼主!努力学习!

TOP

那%config%、%drive%呢是不是特定的什么?

TOP

很好 楼主加油

TOP

返回列表