问题
在主批处理文件中,值从.txt文件中提取(并SET作为此批处理文件中的变量值).这些值可能都包含%字符.
这些是从.txt文件中读取的,没有任何问题.但是,当具有包含%字符的值的变量传递给第二个批处理文件时,第二个批处理文件会将任何%字符解释为变量展开.(注意:无法控制第二个批处理文件.)
例
echo %PERCENTVARIABLE%
Run Code Online (Sandbox Code Playgroud)
输出: I%LOVE%PERCENT%CHARACTERS%
当传递给第二个文件然后回声时,将(可能)变为IPERCENT,因为它解释%LOVE%和%CHARACTERS%取消设置变量.
研究
我找到了在批处理文件中查找和替换字符串中的元素的语法,因为我认为我可能会替换一个%字符%%以逃避它.但是我无法让它发挥作用.
语法是 -
set string=This is my string to work with.
set string=%string:work=play%
echo %string%
Run Code Online (Sandbox Code Playgroud)
然后输出的地方This is my string to play with..
问题
%使用变量中的查找和替换语法来转义字符?(如果没有,还有另一种方式吗?)或许...?
输入.txt
I%LOVE%PERCENT%CHARACTERS%
Run Code Online (Sandbox Code Playgroud)
批处理1.bat
@echo off
setlocal enableDelayedExpansion
set/P var=<input.txt
echo(In batch 1 var content: %var%
set "var=!var:%%=%%%%!"
call batch2.bat "%var%"
endlocal
exit/B
Run Code Online (Sandbox Code Playgroud)
批处理2.bat
@echo off
set "var=%~1"
echo(In batch 2 var content: %var%
exit/B
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |