Як зберегти вихід ipconfig у текстовий файл, коли `tee` недоступний у Windows?


6

Я хочу зберегти ipconfig / all до текстового файлу. Я в Windows 10. Коли я спробую це в cmd

ipconfig /all | tee file.txt

я зрозумів, я отримав

'tee' is not recognized as an internal or external command,operable program or batch file.

Для чого альтернатива Windows tee?


8
Я пропоную видалити powershellяк тег у вашому запитанні, як ipconfig /all | tee file.txtце дійсна команда PowerShell і працює точно так, як ви цього очікуєте. teeпсевдонім для Tee-Object.
davidmneedham

12
Наскільки це варте, tee ніколи не потрібен для збереження виводу у файл - це просто так, щоб ви могли бачити вихід і зберігати його у файл.
JPhi1618

Якщо ви хочете вивести, щоб сказати, дисплей та файл, існує версія Windows для трійки під назвою wintee: code.google.com/archive/p/wintee
Dimblefeck

@Dimblefeck є так багато трійних реалізацій для Windows, як gnuwin32 tee та windows також мають рідний у powerhell
phuclv

Відповіді:


49

Спробуйте перенаправити. Замість | teeвикористовуйте > output.txtнапр

ipconfig /all > output.txt

1
перенаправлення не працює як трійник. Вам потрібно буде потім надрукувати файл, як ipconfig /all > output.txt & type output.txt, але він все ще не буде вести себе як трійник, який виводиться негайно
phuclv

Це питання позначено "cmd.exe", а не "PowerShell". У cmd.exe немає еквівалента для трійника. Однак у PowerShell є Tee-Object, який має трійник як псевдонім.
Грег Ш

так, але ваша відповідь не відповідає того, чого хоче ОП , а це - виведення даних як у stdout, так і у файл
phuclv

10
У заголовку питання конкретно зазначено "ЯК ЗБЕРІГАТИ IPCONFIG ВИХІД ДО ТЕКСТОВОГО ФАЙЛУ, КОГО ТЕЧЕ НЕ ДОСТУПНО". У назві запитання, а також у тілі не згадується одночасне відображення вмісту на екрані, окрім посилання на саму команду tee.
Грег Ш

18

ipconfig /all >>logfile.txt 2>>&1

>>logfile.txt 2>>&1Буде перенаправляти як вихідний потік і потік помилок в файл під назвою LogFile.txt , який буде створений і збережений в поточному каталозі. Якщо в цьому каталозі є існуючий logfile.txt, він додасть вихід до кінця.


1
Ви впевнені, що це використання правильне? Це виглядає як нісенітниця, і недокументовано в документації про переадресацію вводу / виводу Windows . 2>>&1не приймає аргумент файлу. Для Powershell - ipconfig /all *>> logfile.txtце спосіб додавання всіх вихідних потоків до файлу.
alexis

1
Ви мали на увазі ipconfig /all >> logfile.txt 2>&1можливо?
AC

Я здивований, що моя помилка пішла, не вказуючи на це так довго, дійсно, я трохи відключився, оскільки я просто швидко перевірив .bat файл, який я мав у собі, і переглянув його з першого погляду. Я відредагував свою відповідь на правильне використання, вибачте!
Сіаран Маккензі

8

Якщо ви встановите MSYS2, ви можете використовувати

$ ipconfig -all | tee file.txt

Зауважте, що /allмає бути записано як -all.

У моєму випадку я отримую:

$ head file.txt

Windows-IP-Konfiguration

   Hostname  . . . . . . . . . . . . : Death-Star
   [..]

4
Хоча це не є поганою відповіддю, вкладення MSYS2 на ваш шлях має дивовижні наслідки.
Джошуа

1
@JimB: MSYS не був чудовим, тому GnuWin32 була гарною альтернативою для цього, але MSYS2 була чудовою, наскільки я спробував це. Я не знаю жодної причини використовувати GnuWin32 над ним.
Мехрдад

1
@Mehrdad: Деякі з цих матеріалів очікують, що інші надані ним матеріали будуть на початку шляху. Я не намагався каталогізувати всі випадки, але зрештою ви виявите, що у вас є дві findкоманди, які роблять різні речі.
Джошуа

2
немає потреби в msys2. powershell -command "ipconfig /all | tee output.txt"буде працювати, якщо ви знаходитесь у cmd
phuclv

1
@ LưuVĩnhPhúc дайте відповідь на вашу пропозицію, це далеко не все найкраще рішення!
користувач2531336
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.