在 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%