2015-06-12 49 views
0

例如,下面的命令(在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% 

但它不是對這個問題的答案,因爲這個問題不只是上面的命令。

回答

1

對於任意數量的命令,以更簡單的方式:

@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 
+0

對不起@Aachi,但 如果for/F「delims =「%% b in('%%〜a')do set」output =!output!%% b「 然後2015年後還有額外的空間:」Mon 06/15/2015 08:41 AM「 if if for/F「delims =」%% b in('%%〜a')do set「output =!output!%% b」 然後有錯過的字母:「on 06/15/2015 08:42 AM」 – valeryan

+0

我想你希望每個輸出都用空格分隔,例如在'echo%date%%time%'示例中!第一個附加空間在'echo%output:〜1%>> t.txt'的「:〜1」部分被消除。如果你不想要分隔空間,也可以用'echo%output%>> t.txt'來改變最後一行' – Aacini

+0

@Aachi:是的,需要一個空間。但是,如果您將看到此頁面的源代碼,那麼在「2015」之後,您將看不到一個,而是兩個空格(通過瀏覽器將其更改爲一個空格)。 – valeryan

0

兩個命令的輸出可以在一個線通過使用下面的命令(在批處理文件)被接合:

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 
+0

感謝Joey(joey)和弗蘭克博拉克(弗蘭克 - 博拉克)! (http://stackoverflow.com/questions/1425807/redirecting-output-to-a-command-line-argument-of-another-command-in-windows) – valeryan

0

通過使用以下命令(在批處理文件中),兩個命令的輸出可以通過一行連接:

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 
+0

感謝Stefanos Kalantzis (Stefanos的-kalantzis)! http://stackoverflow.com/questions/4568941/reading-the-content-of-a-text-file-into-an-environment-variable – valeryan

相關問題