有没有Windows等价的语法可以在bat脚本文件中运行另一个命令?
在Linux中,你可以简单地使用$(...)或``。
有没有Windows等价的语法可以在bat脚本文件中运行另一个命令?
在Linux中,你可以简单地使用$(...)或``。
是的,至少对于简单的事情而言可以这样做:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f %%w in ('echo xyzzy') do set var=%%w
echo Output is %var%
endlocal
那个脚本的输出结果是:Output is xyzzy
使用echo命令生成的xyzzy
参数。
在命令窗口中运行for /?
可以获得更全面的选项列表。
for
是唯一的方法。即使使用$()
在bash
中也无法运行代码,它只是将另一个进程的标准输出替换掉而已。这与将其存储在环境变量中然后使用该变量没有什么不同,就像我的答案一样。 - paxdiablofor /f "usebackq delims= " %%w in (
echo xyz) do set var=%%w
- Kurt Pfeifleusebackq
会改变每种引号的功能(执行命令、读取文件、使用纯文本等)。根据 for /?
的描述文本,带有反引号的 usebackq
与没有该选项的单引号相同。 - paxdiablo