2015-06-12 2 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, но если для/F "delims = "%% b in ('%% ~ a'), установите« output =! output! %% b » , после чего появится дополнительное пространство после 2015 года:« Mon 06/15/2015 08:41 AM » и if для/F "delims =" %% b in ('%% ~ a') установить «output =! output! %% b» , тогда есть пропущенная буква: «15.06.2012 15:42» – valeryan

+0

Я посчитал, что вы хотите, чтобы каждый вывод разделялся пробелом, как в примере 'echo% date%% time%'! Первое дополнительное пространство исключается в части «: ~ 1» 'echo% output: ~ 1% >> t.txt'. Если вы не хотите разделять пространства, также измените последнюю строку на '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

Благодаря Джои (Джои) и Фрэнк Боллак (франк-боллак)! (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 (Стефанос-kalantzis)! http://stackoverflow.com/questions/4568941/reading-the-content-of-a-text-file-into-an-environment-variable – valeryan

Смежные вопросы