批处理中%与%%有什么区别

for/fi%in(dict.txt)donetuse\\ip\ipc$"i%"/u:"administrator"这个才猜解ipc$连接的密码for/f%%iin(14... for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator" 这个才猜解ipc$连接的密码

for /f %%i in (1433.txt) do sqlhello.exe %%i 1433 127.0.0.1 1234
这个是批量溢出SQL漏洞

请问其中%和%%的区别是什么呢?
展开
 我来答
床前明月儿
高能答主

2019-11-12 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171935

向TA提问 私信TA
展开全部

一、指代不同

1、%:表示变量的引用。    

2、%%:只有在批处理里面才写 两个 %% 号表示变量,变量是for 语句里面 特有的变量。

二、用法不同

1、%:变量的引用@echo offset a=123 rem定义一个变量a 赋值为123echo %a% rem。

2、%%:for %%i in (1 2 3 4 5 ) do echo %%i,批处理中用两个 %%,其实是编译器编译的时候要屏蔽一个%。


三、语法不同

1、%:专门保存外部参数的,就是运行批处理时加的参数。只有 %1 %2 %3 %4 ...... %9。

2、%%:for %%variable in (set) do command [command-parameters]。

参考资料来源:百度百科-批处理

参考资料来源:百度百科-bat

企业出海规划师
2024-05-27 广告
销售税经济关联阈值是指当一个企业的销售收入或销售额达到某个特定数值时,该企业将与一定的经济利益相关联。这个数值可以是一个固定金额,也可以是一个根据企业规模、行业特点或其他因素计算的数值。在销售税方面,经济关联阈值通常是指企业在一个财政年度内... 点击进入详情页
本回答由企业出海规划师提供
静若拂尘
推荐于2017-10-05 · TA获得超过8734个赞
知道大有可为答主
回答量:5745
采纳率:75%
帮助的人:1001万
展开全部
1.如果是 %a% 这种形式 ,就是变量的引用,
@echo off
set a=123 rem定义一个变量a 赋值为123
echo %a% rem显示出变量a的值(如果不加% %系统会把a当字符处理了,不会当成变量的)
2.%%i 这种变量是for 语句里面 特有的变量(还有一种是外部变量,接受外部参数的格式是%1 -%9 共9个变量),只有在批处理里面才写 两个 %% 号表示变量,cmd中只用 一个 % 号。反正只要你在批处理文件里面用 for,变量就用 %%。例如

批处理中的写法
for %%i in (1 2 3 4 5 ) do echo %%i
为什么批处理中用两个 %%,其实是编译器编译的时候要屏蔽一个%
在cmd窗口中写法

for %i in (1 2 3 4 5 ) do echo %i
3.现在说下外部变量,是系统制定的,只有9个,专门保存外部参数的,就是运行批处理时加的参数。只有 %1 %2 %3 %4 ...... %9

例如
@echo off

echo %1
echo %2
echo %3
echo %4
将上面的代码复制到记事本。保存格式为 bat

现在怎样传递参数给这个批处理,如下
在开始》运行 里面输入 cmd 确定
在弹出来的窗口中 输入 上面 批处理文件 的 完全路径名,然后就加要传递的参数了 例如 c:\text.bat aaaa bbbb cccc dddd eeeee
上面 aaaa bbbb cccc dddd eeeee
就是传递给 批处理 “参数”这些参数 会保存在 %1至 %9 这9个变量名,最多只能保存 9 个。运行下就知道了,上面批处理文件中 %1变量保存的是aaaa
%2 保存的是 bbbb
%3 保存的是 cccc
%4 保存的是 dddd
%5 是 eeee 上面没有用到 %5变量
来源:批处理中%用法_百度文库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玉其英侍绫
2019-12-05 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:31%
帮助的人:733万
展开全部
%是个escape字符,通常将之译为转义字符,但也有更形象的译名脱逸字符、逃逸字符等。也就是说%不仅仅将与其相关的特定字符串转义并替换为特定字符串,而且自身也会被“脱逸”。而且类似于c语言中的转义字符"\",双%会转义并脱逸为单%,四%则脱为双%。
除了for循环变量外,批处理变量的脱逸符要成对使用,就像数学四则运算的括号一样。
call
set
b=%%a:~0,%c%%%
就你举得这个例子来讲,最里面一对单%相当于四则运算里的小括号,外面的一对双%相当于中括号,再有3
个%就相当于大括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2008-04-26 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65796
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
在命令行下,自定义变量使用%i,在批处理文件里面,自定义变量必须使用%%i,功能完全相同,只是语法要求不同地方的不同形式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丨情冇独钟丨
推荐于2017-09-10 · TA获得超过6219个赞
知道大有可为答主
回答量:2188
采纳率:50%
帮助的人:3430万
展开全部
for /f i%
会有这种表示方法?..从没见过,怕是会出错吧..
你运行这些没提示出错..??

在cmd中,for后面的变量用%加一个字母表示,如%i
但实际批处理中两上%%,在cmd解析的时候会当一个,所以要%%i表示,至于你上面的i%还真没见过..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式