Batch file suppress%(百分号)在CMD文件中转义?(重复)

Batch file suppress%(百分号)在CMD文件中转义?(重复),batch-file,cmd,command,escaping,Batch File,Cmd,Command,Escaping,经过研究,我想我知道这个问题的答案:不。但为了以防万一我遗漏了什么:有没有一种方法可以全局抑制CMD文件中的%转义?比如: SETLOCAL NOESCAPE MYAPP.EXE "%41%42%43%44" 因此MYAPP.EXE可以看到文本字符串: "%41%42%43%44" 我知道我可以在百分比符号上加倍,但我想知道是否有一个可以打开和关闭的设置 谢谢。否,没有允许执行的批处理行将百分比视为文字的设置。百分比解释是批处理解析器工作方式的一个组成部分-有关更多信息,请参阅 如果希望在已

经过研究,我想我知道这个问题的答案:不。但为了以防万一我遗漏了什么:有没有一种方法可以全局抑制CMD文件中的%转义?比如:

SETLOCAL NOESCAPE
MYAPP.EXE "%41%42%43%44"
因此MYAPP.EXE可以看到文本字符串:

"%41%42%43%44"
我知道我可以在百分比符号上加倍,但我想知道是否有一个可以打开和关闭的设置


谢谢。

否,没有允许执行的批处理行将百分比视为文字的设置。百分比解释是批处理解析器工作方式的一个组成部分-有关更多信息,请参阅

如果希望在已执行的批处理脚本行中包含百分比文字,则必须将其加倍

我曾想过一种嵌入并执行包含未转义百分比文字的命令的方法,但这是一种丑陋的攻击。您可以将字符串文字放在“标记”注释中,使用FINDSTR提取字符串文字,并通过FOR/F处理该值。您可以使用多个标签有选择地获取所需的字符串

@echo off
::cmd1:myapp.exe "%41%42%43%44"
::cmd2:myapp.exe "%91%92%93%94"
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd1:" "%~f0"') do %%B
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd2:" "%~f0"') do %%B

我不知道你的情况,但我宁愿逃避百分比;-)

否,没有允许执行的批处理行将百分比视为文字的设置。百分比解释是批处理解析器工作方式的一个组成部分-有关更多信息,请参阅

如果希望在已执行的批处理脚本行中包含百分比文字,则必须将其加倍

我曾想过一种嵌入并执行包含未转义百分比文字的命令的方法,但这是一种丑陋的攻击。您可以将字符串文字放在“标记”注释中,使用FINDSTR提取字符串文字,并通过FOR/F处理该值。您可以使用多个标签有选择地获取所需的字符串

@echo off
::cmd1:myapp.exe "%41%42%43%44"
::cmd2:myapp.exe "%91%92%93%94"
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd1:" "%~f0"') do %%B
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd2:" "%~f0"') do %%B

我不知道你的情况,但我宁愿逃避百分比;-)

否,没有允许执行的批处理行将百分比视为文字的设置。百分比解释是批处理解析器工作方式的一个组成部分-有关更多信息,请参阅

如果希望在已执行的批处理脚本行中包含百分比文字,则必须将其加倍

我曾想过一种嵌入并执行包含未转义百分比文字的命令的方法,但这是一种丑陋的攻击。您可以将字符串文字放在“标记”注释中,使用FINDSTR提取字符串文字,并通过FOR/F处理该值。您可以使用多个标签有选择地获取所需的字符串

@echo off
::cmd1:myapp.exe "%41%42%43%44"
::cmd2:myapp.exe "%91%92%93%94"
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd1:" "%~f0"') do %%B
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd2:" "%~f0"') do %%B

我不知道你的情况,但我宁愿逃避百分比;-)

否,没有允许执行的批处理行将百分比视为文字的设置。百分比解释是批处理解析器工作方式的一个组成部分-有关更多信息,请参阅

如果希望在已执行的批处理脚本行中包含百分比文字,则必须将其加倍

我曾想过一种嵌入并执行包含未转义百分比文字的命令的方法,但这是一种丑陋的攻击。您可以将字符串文字放在“标记”注释中,使用FINDSTR提取字符串文字,并通过FOR/F处理该值。您可以使用多个标签有选择地获取所需的字符串

@echo off
::cmd1:myapp.exe "%41%42%43%44"
::cmd2:myapp.exe "%91%92%93%94"
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd1:" "%~f0"') do %%B
for /f "tokens=1* delims=:" %%A in ('findstr "^::cmd2:" "%~f0"') do %%B

我不知道你的情况,但我宁愿逃避百分比;-)

当然@dbenham这绝对是一个可能是工作多于回报的黑客行为,但我必须赞扬你的创造性思维!编辑-缺陷修复-将
%B
更改为
%B
@dbenham,与Scott C所说的一样。当然@dbenham这绝对是一种可能比奖励更努力的黑客行为,但我必须赞扬你的创造性思维!编辑-缺陷修复-将
%B
更改为
%B
@dbenham,与Scott C所说的一样。当然@dbenham这绝对是一种可能比奖励更努力的黑客行为,但我必须赞扬你的创造性思维!编辑-缺陷修复-将
%B
更改为
%B
@dbenham,与Scott C所说的一样。当然@dbenham这绝对是一种可能比奖励更努力的黑客行为,但我必须赞扬你的创造性思维!编辑-错误修复-将
%B
更改为
%B
@dbenham,与Scott C所说的一样。