基本上我只是使用这个部分替换我的var中的字符串,但是我无法通过嵌套延迟扩展来正常工作。这甚至可能吗?
set replace=!replace:!search!=!replaceVal!!
我知道它被执行时会发生什么。它在第一个完整集合之后停止,它将是set replace=!replace:!
,然后它会尝试执行最后一部分,但有没有办法逃脱它们以便它能正确地得到我的结果?
答案 0 :(得分:1)
[实施例]
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "search=aaa"
SET "replace=jjj"
IF DEFINED search (
SET "replace=xxxbbbyyybbbhhh"
SET "search=bbb"
SET "replaceval=kkk"
SET REPLACE
ECHO after...
CALL SET "replace=%%replace:!search!=!replaceval!%%"
SET replace
)
GOTO :EOF
答案 1 :(得分:1)
只要#include <string.h>
和search
值没有空格,就可以使用
replace
如果这些变量有空格,只需插入适当的分隔符:
for /F "tokens=1,2" %%a in ("!search! !replaceVal!") do set replace=!replace:%%a=%%b!
答案 2 :(得分:1)
我认为最安全的方法如下:
npm install
因此,唯一剩下的限制是那些适用于子字符串替换语法的限制。