Nei*_*her 4 windows cmd batch-file
我知道如何在批处理脚本中进行文字字符串替换.但是,我有一个特定的情况,我需要替换数值变量的值
这是脚本:
setlocal enableextensions enabledelayedexpansion
set /A L=2
:L1
if %L% EQU 0 goto :EOF
set STRING="THIS IS # TEST"
SET NEW=%STRING:#=%%L%
echo %NEW%
set /A L=%L% - 1
goto L1
Run Code Online (Sandbox Code Playgroud)
我希望它显示这个:
THIS IS 2 TEST
THIS IS 1 TEST
Run Code Online (Sandbox Code Playgroud)
但它最终将这种方式改为:
THIS IS TEST2
THIS IS TEST1
Run Code Online (Sandbox Code Playgroud)
关于如何让它做我需要的任何提示?
谢谢.
即使是aphoria和Bali C的解决方案也会起作用,最好使用它
set "NEW=!STRING:#=%L%!"
Run Code Online (Sandbox Code Playgroud)
届时,更换将在延迟扩展阶段完成,而不是在扩展阶段.
这也适用于感叹号和插入符号 STRING
@echo off
set L=2
set "String=This is # test!"
setlocal EnableDelayedExpansion
set "NEW=!STRING:#=%L%!"
echo !NEW!
Run Code Online (Sandbox Code Playgroud)
你就快到了,只需改变一下
SET NEW=%STRING:#=%%L%
Run Code Online (Sandbox Code Playgroud)
到
SET NEW=%STRING:#=!L!%
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3220 次 |
| 最近记录: |