перенаправление вывода двух команд - PullRequest
0 голосов
/ 24 мая 2018

Мне интересно, есть ли в Windows одна строка для выполнения следующих действий:

myCommand options1 | cut -c 10-20 > temp1.txt
myCommand options2 | cut -c 10-20 > temp2.txt
paste temp1.txt temp2.txt

Я также хотел бы сделать подобное, используя diff вместо paste, но яугадать ответ будет таким же (да?).В общем случае temp1 и 2 будут иметь более одной строки текста.Я нашел следующее, похожее на похожий вопрос Вывод на печать двух команд в двух столбцах в файле Excel , но на него нет ответа.

Редактирование / обновление: теперь я понимаю, чтоЯ не очень хорошо понимал «однострочник».Очевидно, что я могу собрать все три строки в одну строку, просто разделив их амперсандами.Это не то, что я ищу.Я смутно вспоминаю, как много лет назад использовал Unix, что для таких вещей можно было использовать backticks.Может быть, что-то вроде

paste `cmd1` `cmd2`

не совсем уверен (?).Это то, что я ищу (на окнах).В идеале это не будет включать (намного) больше печатания, чем просто ввод трех строк выше.Это существует?

1 Ответ

0 голосов
/ 24 мая 2018

Я никогда не пойму, почему кто-то хочет использовать однострочники, но здесь вы идете:

(ping localhost |find "Mini" & ipconfig |find "IPv4")>temp.txt

edit , чтобы показать вывод обеих команд рядом:

@echo off
setlocal enabledelayedexpansion
ping localhost |find "TTL" >1.txt
ipconfig |find ":" >2.txt

<1.txt (
  for /f "delims=" %%a in (2.txt) do (
    set /p "x="
    echo !x! ; %%a
    set "x=-"
  )
)>temp1.txt

так же, как однострочный (как пакетный файл):

cmd /v:on /c ping localhost |find "TTL" >1.txt & ipconfig |find ":" >2.txt & <1.txt (for /f "delims=" %%a in (2.txt) do (set /p "x=" & echo !x! ; %%a &  set "x=-"))>temp2.txt

однострочный для использования в командной строке:

cmd /v:on /c "ping localhost |find "TTL" >1.txt & ipconfig |find ":" >2.txt & <1.txt (for /f "delims=" %a in (2.txt) do @(set /p "x=" & echo !x! ; %a &  set "x=-"))>temp.txt"

Примечание: в результатестрок столько же, сколько в 2.txt (вывод второй команды).Если 1.txt имеет больше строк, они опускаются (меньше строк не является проблемой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...