首先,我是编码的新手,希望你能在这里找到一些帮助。
我正在尝试制作一个批处理脚本来解决一个简单的问题。
我想给脚本一个参数,该脚本在单词的任何地方都包含一个通配符,脚本会检测它并用for循环给出的增量值替换它。
这是我现在所拥有的,但问题是还没有增量结果。
@echo off
setlocal enabledelayedexpansion
set SEARCHTEXT=?
set string=%1
for /l %%x in (1, 1, 5) do (
set REPLACETEXT=%%x
call set string=%%string:!SEARCHTEXT!=!REPLACETEXT!%%
echo !string!
)
:end
例如,如果我将其保存为“example.bat”并运行这是我得到的
> example.bat num?
结果是......
num1
num1
num1
num1
num1
但这应该是......
num1
num2
num3
num4
num5
你能帮帮我吗?
答案 0 :(得分:1)
你正在覆盖string
而它会丢失?
。
将结果改为新变量。
for /l %%x in (1, 1, 5) do (
set "string2=!string:%SEARCHTEXT%=%%x!"
echo !string2!
)
答案 1 :(得分:1)
每次尝试重新初始化string
也会有效:
@echo off
setlocal enabledelayedexpansion
set SEARCHTEXT=?
for /l %%x in (1, 1, 5) do (
set "string=%1"
set string=!string:%SEARCHTEXT%=%%x!
echo !string!
)