Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash内联命令的Windows bat替代方案_Windows_Bash_Batch File_Cmd - Fatal编程技术网

Bash内联命令的Windows bat替代方案

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 从命令

在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


从命令窗口运行
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将安装在用户的系统上。