我试图让CMD等同于以下bash
功能:
$ FOO=foo.bar
$ BAR=bar
$ BAZ=baz
$ echo ${FOO/$BAR/$BAZ}
foo.baz
Run Code Online (Sandbox Code Playgroud)
现在,当模式和替换都是常量时,CMD有一些类似的命令替换:
C:\>set FOO=foo.bar
C:\>set BAR=bar
C:\>set BAZ=baz
C:\>echo %FOO:bar=baz%
foo.baz
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法在那里引用变量 -
C:\>echo %FOO:%BAR%=%BAZ%%
%foo:bar=baz%
Run Code Online (Sandbox Code Playgroud)
我该怎么办?用于指出FOR
在批处理文件中循环内部也能正常工作的奖励点.
以下(批处理文件)应该可以工作并打印“foo.baz”:
setlocal enabledelayedexpansion
set FOO=foo.bar
set BAR=bar
set BAZ=baz
echo !FOO:%BAR%:%BAZ%!
Run Code Online (Sandbox Code Playgroud)
(关于你提到的 FOR 循环,你需要提供更多关于你的意思的信息。)