Batch file 批量替换命令,i';我很困惑

Batch file 批量替换命令,i';我很困惑,batch-file,replace,Batch File,Replace,好吧,我试过了 set x=12 & set var=(x) set var=%var:(=^%% set var=%var:)=^%% echo %var% 我得到了x% 然后我做了这个 setlocal enabledelayedexpansion set var=!var:(=%! set var=!var:)=%! echo %var% 我得到了!变量:)=% 两种方法都失败了,所以我需要帮助。考虑下一个脚本: @ECHO OFF SETLOCAL EnableExte

好吧,我试过了

set x=12 &
set var=(x)
set var=%var:(=^%%
set var=%var:)=^%%
echo %var%
我得到了x%

然后我做了这个

setlocal enabledelayedexpansion

set var=!var:(=%!

set var=!var:)=%!

echo %var%
我得到了!变量:)=%


两种方法都失败了,所以我需要帮助。

考虑下一个脚本:

@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
echo(
set "_x=12"
set "_var=(_x)"
set "_var=!_var:(=%%!"
set "_var=!_var:)=%%!"
set _
echo(
     echo "     echo %%_var%%" %_var%
call echo "call echo %%%%_var%%%%" %_var%
其输出:

==> D:\bat\SO\40369895.bat

_var=%_x%
_x=12

"     echo %_var%" %_x%
"call echo %_var%" 12

==>

请注意,变量名中的前缀(
\ux
\uvar
而不是
x
var
)并不重要…

问题是什么?帮助什么?解释你的问题!很抱歉没有澄清,我的意思是希望var等于%x%,比如将“(”和“')”转换为“%”。