Bash内联命令的Windows bat替代方案
在bat脚本文件中的另一个命令中运行命令是否有与Windows等效的语法Bash内联命令的Windows bat替代方案,windows,bash,batch-file,cmd,Windows,Bash,Batch File,Cmd,在bat脚本文件中的另一个命令中运行命令是否有与Windows等效的语法 在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命令的xyzy 从命令
在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
命令的xyzy
从命令窗口运行
for/?
应该会提供更全面的选项列表。我认为这是由“for in”构造处理的,而不是由Windows命令行引擎内部处理的。在我的情况下,它似乎不起作用:@Moshen,for
是我认为你能做到这一点的唯一方法。即使是bash
也没有使用$()
运行代码,它只是简单地替换另一个进程的标准输出。这与将其存储在环境变量中,然后使用该变量没有什么不同,正如我的回答所示。@Mohsen-FOR是一个内部命令,因此,它肯定是由命令行引擎处理的。FOR
出现在MS-DOS v2.0中-这里是@paxdiablo:我目前没有Windows测试系统-但是您不需要添加“usebackq”
参数,然后也使用反引号“``来包围echo xyzy
命令吗?对于/f“usebackq delims=“%%w in(`echo xyz`)do set var=%%windows.bat文件是一个历史回溯,为什么不安装Perl呢?批处理文件仍然有一个位置-例如,如果必须在安装脚本中运行一个文件。您不能假设Perl将安装在用户的系统上。