del*_*ium 9 variables replace substring batch-file
在使用变量时,我无法让这个批处理文件进行子串替换.特别当!原创!指定变量; 如果它是一个文字字符串,它工作正常.但是,这不适合我的使用.
setlocal ENABLEDELAYEDEXPANSION
set original=chair
set replacement=table
set str="jump over the chair"
set str=%str:!original!=!replacement!%
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
azh*_*rei 15
如果您使用,call
您可以在不需要的情况下执行此操作setlocal enabledelayedexpansion
,如下所示:
call set str=%%str:%original%=%replacement%%%
注意:首先解析为 call set str=%str:chair=table%
您已经取消了扩展顺序。
正常(百分比)扩展发生在解析时(第 1 次)
延迟(感叹号)扩展发生在运行时(第 2 次)
必须先扩展搜索和替换术语,然后才能进行搜索和替换。所以你要:
set str=!str:%original%=%replacement%!
Run Code Online (Sandbox Code Playgroud)