第一次发布-对不起! 是的,我已经看到很多关于如何在批处理脚本中替换字符串中字符的文章,但是我似乎无法使它们中的任何一个都使用“ =”。这是我想做的:
这是一个批处理文件,在bash shell中运行:
set ss=param1= 3, pram2 = 27.3, param3 = 11,
echo %ss% | sed 's/=/ /g' | sed 's/,/ /g'
它精美地写到屏幕上:
param1 3 pram2 27.3 param3 11
这正是我想要充满的变量,而不是在屏幕上看!我希望它改为写一个变量-例如:
set sss=echo %ss% | sed 's/=/ /g' | sed 's/,/ /g'
echo %sss% returns ECHO is off.
echo $sss returns $sss
非常感谢您的帮助!
答案 0 :(得分:0)
set "ss=param1= 3, pram2 = 27.3, param3 = 11,"
for /f "delims=" %%A in (
'echo %ss%^|sed "s/=/ /g"^|sed "s/,/ /g"'
) do set "sss=%%A"
echo sss: %sss%
在Bash中,您可以将命令的标准输出直接分配给变量。
在CMD中,可以使用for /f
循环运行命令并返回Stdout的每一行。
命令运行需要使用|
进行转义的^
。
sed
的参数可能需要双引号,而不是Bash可能使用的单引号。
delims=
选项告诉for
循环不要将每一行都分隔成令牌。
查看for /?
以获得有关在for
循环中运行命令的帮助。