如何在一行中加入两个命令的输出?

How to join output of two commands in one line?

例如,以下命令(在 Windows 7 中):

date/t>>t.txt
time/t>>t.txt

在 t.txt 中创建以下行:

Fri 06/12/2015 
01:37 PM

是否可以在一行(见下文)中加入两个命令(见上文)的输出?

Fri 06/12/2015 01:37 PM

上述目标可以通过命令达到:

echo %date% %time%

但这不是这个问题的答案,因为这个问题不仅仅是关于上面的命令。

可以使用以下命令(在批处理文件中)将两个命令的输出合并为一行:

for /f "delims=" %%x in ('date/t') do set d=%%x
for /f "delims=" %%x in ('time/t') do set t=%%x
echo %d%%t%>>t.txt

对于任意数量的命令,以更简单的方式:

@echo off
setlocal EnableDelayedExpansion

set "output="
for %%a in ("date /t" "time /t" "echo Hello world") do (
   for /F "delims=" %%b in ('%%~a') do set "output=!output! %%b"
)
echo %output:~1%>> t.txt

也可以使用以下命令(在批处理文件中)将两个命令的输出合并在一行中:

date /t>t_t.txt
set /p t=<t_t.txt
time /t>t_d.txt
set /p d=<t_d.txt
echo %t%%d%>>t.txt