Windows CLI 中是否有类似命令替换的东西?

Windows CLI 中是否有类似命令替换的东西?

在 Linux(Bash)中,有一种方法可以将一个命令用作另一个命令的参数,即使用反引号:

> echo ===== `time` =====

这将打印:

=====当前时间是:12:22:34.68 =====

有没有办法在 Windows 上的 cmd.exe 中执行此操作?

答案1

尝试这个:

echo. ===== %time% =====

我知道这可能不是你想要的,因为你提到命令替换...所以可能是这样:

for /f "usebackq tokens=*" %i in (`date/time/t`) do @echo.  ===== %i =====

有关使用方法的更多详细信息,usebackq请尝试此命令:

for /?

答案2

不行,但是有个解决方法:

D:\>time /t
08:18 PM

D:\>time /t > time.tmp

D:\>set /p time=<time.tmp

D:\>echo == %time% ==
== 08:18 PM ==

也可以看看:批处理相当于 Bash 反引号

答案3

在 Windows 中,'( )' 运算符具有与 Bash 命令替换类似的行为。

这个Linux脚本:

my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`

echo $my_linux_command=$(ls)
echo $my_alternate_linux_command=`ls`

给出的结果与 Windows PowerShell 类似:

$my_windowsPS_variable = (dir)

$my_windowsPS_variable

并使用 Windows CMD 命令:

set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%

相关内容