/ /
1
Команда Windows systeminfo позволяет получить список информации о вашем компьютере. Благодаря этой команде, доступной во всех операционных системах Microsoft, мы можем узнать версию операционной системы и BIOS, тип процессора, объём доступной физической и виртуальной памяти (что такое виртуальная память), тип сетевой карты и многое другое.
Следующее руководство можно использовать на всех компьютерах с Windows 10, Windows 8.1/8, Windows 7 и Windows Vista.

Основно тэг: вывод результата WMIC в переменную.
Мне нужно резать значение справа.
Например, узнаем сколько свободного места на нашем диске в Гб:
Первый вариант самый надежный, но интересует больше второй.
Можно ли убрать скрытый пробел, (точнее чтобы он изначально не формировался)?
-Видишь суслика в кустах?
-Нет.
-И я не вижу, а он есть.
I am using this batch command to save ping output to a text file,
ping 10.226.2.10 -n 10 >>ping_ip.txt
ping 10.226.2.10 -n 10 1>>ping_ip.txtyou can see there is extra 1 in 1>> in the second command, i don’t know how it came.. somebody please give your valuable opinion on the same
asked Oct 25, 2016 at 6:30
This is just the normal behaviour.
In batch files you have some input/output streams:
- 0 = standard input stream
- 1 = standard output stream
- 2 = standard error stream
- 3-9 = user defined streams
Your >> operator implicitly redirects the standard output stream, that is, it is redirecting the stream number 1, and the cmd parser converts the command
command >> outputcommand 1>> outputshowing the explicit command executed based in an implicit request
answered Oct 25, 2016 at 6:47
MC ND
8 gold badges82 silver badges125 bronze badges
Powershell with timestamp and appended to file.
ping.exe -t example.com | Foreach{"{0} - {1}" -f (Get-Date),$_} | out-file .\ping.txt -appendanswered May 28, 2021 at 7:47
1 silver badge4 bronze badges
@echo off ping -t localhost|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" note: code to be used inside a batch file. To use from command line replace %%a with %a
2015-01-08 edited:
In faster/newer machines/os versions there is a synchronization problem in previous code, making the set /p read a line while the ping command is still writting it and the result are line cuts.
@echo off ping -t localhost|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost>nul"Two aditional pause commands are included at the start of the subshell (only one can be used, but as pause consumes a input character, a CRLF pair is broken and a line with a LF is readed) to wait for input data, and a ping -n 2 localhost is included to wait a second for each read in the inner loop. The result is a more stable behaviour and less CPU usage.
NOTE: The inner ping can be replaced with a pause, but then the first character of each readed line is consumed by the pause and not retrieved by the set /p
Сведения о системе необходимы пользователю для получения информации об аппаратных и программных компонентах компьютера. Основные сведения о компьютере отображаются в параметрах Windows, к которым легко получить доступ, войдя в «Параметры» Windows.
В некоторых случаях, предоставляемые сведения о системе Windows в параметрах операционной системы, недостаточны. Поэтому необходима более подробная информация, которую можно использовать для решения проблем или для получения справочных сведений.
Как получить сведения о системе? Общие сведения о системе можно получить с помощью встроенных средств операционной системы, или с помощью специализированных программ от сторонних разработчиков.
К сожалению, не всегда есть возможность воспользоваться на данном компьютере услугами сторонних программ. Поэтому в статье я расскажу, как получить сведения о системе с помощью встроенных средств, на примере Windows 10 (в других операционных системах средства работают аналогично).
[root@localhost ~]# while true; do timeout -s 2 1h ping 96.120.16.121 | ts '%Y-%m-%d %H:%M:%S |' | tee -a ping.log; doneeasier to read format:
#!/bin/bash
while true; do timeout -s 2 1h ping 96.120.16.121 | ts '%Y-%m-%d %H:%M:%S |' | tee -a ping.log
done[root@localhost ~]# cat ping.log
2015-10-30 07:35:29 | PING 96.120.16.121 (96.120.16.121) 56(84) bytes of data.
2015-10-30 07:35:29 | 64 bytes from 96.120.16.121: icmp_seq=1 ttl=254 time=11.2 ms
2015-10-30 07:35:30 | 64 bytes from 96.120.16.121: icmp_seq=2 ttl=254 time=9.83 ms
2015-10-30 07:35:31 | 64 bytes from 96.120.16.121: icmp_seq=3 ttl=254 time=13.0 ms
2015-10-30 07:35:32 | 64 bytes from 96.120.16.121: icmp_seq=4 ttl=254 time=17.0 ms
2015-10-30 07:35:33 | 64 bytes from 96.120.16.121: icmp_seq=5 ttl=254 time=20.8 ms
5/5 packets, 0% loss, min/avg/ewma/max = 9.839/14.399/13.129/20.850 ms
Quit[root@localhost ~]# cat ping.log
2015-10-30 07:35:29 | PING 96.120.16.121 (96.120.16.121) 56(84) bytes of data.
2015-10-30 07:35:29 | 64 bytes from 96.120.16.121: icmp_seq=1 ttl=254 time=11.2 ms
2015-10-30 07:35:30 | 64 bytes from 96.120.16.121: icmp_seq=2 ttl=254 time=9.83 ms
2015-10-30 07:35:31 | 64 bytes from 96.120.16.121: icmp_seq=3 ttl=254 time=13.0 ms
2015-10-30 07:35:32 | 64 bytes from 96.120.16.121: icmp_seq=4 ttl=254 time=17.0 ms
2015-10-30 07:35:33 | 64 bytes from 96.120.16.121: icmp_seq=5 ttl=254 time=20.8 msEDIT: Ok so I’ve got the statistics appending to the log file, but whenever I send the SIGINT symbol with CTRL+\ ping restarts and the statistics are not logged. I’d like to be able to still pause and see the statistics in terminal without restarting ping if possible
[root@localhost ~]# while true; do ping -w 3600 96.120.16.121 | ts '%Y-%m-%d %H:%M:%S |' | tee -i -a ping.log; done#!/bin/bash
while true; do ping -w 3600 96.120.16.121 | ts '%Y-%m-%d %H:%M:%S |' | tee -i -a ping.log
done
Здравствуйте! Столкнулся с такой проблемой. Нужно обработать результаты команды wmic. Для этого использую цикл for. Пробую сделать это двумя способами, и ни одним не выходит. В обоих способах команда wmic написана корректно и возвращает те данные, которые надо.
1 способ. Пробую результаты команды wmic вывести в текстовый файл, затем с помощью цикла for прочитать из него данные и обработать.
Пробовал создавать файл в ручную, а не через wmic, и в ручную туда заносил данные. Тогда все работает, все считывает. Такое ощущение как будто wmic как-то не правильно записывает файл, и цикл for его как-то некорректно читает.
2 способ. Пробую данные обрабатывать сразу, без промежуточного файла.
Почему сравнение строк происходит некорректно? Что-то не так с кодировкой? Как это исправить? Помогите пожалуйста.
Тоже задавался вопросом непрерывного пинга с логгированием и временными метками. Написал бат-файл:
@echo off
rem pinger v2.1
setlocal>nul
rem в этот файл будет выведен лог работы команды ПИНГ
set filelogname="outlog.txt"
rem адрес, который следует пинговать
set iptoping="8.8.8.8"
cls
echo ping %iptoping% ........
rem время в формате 23:15:51,50
set xxa=%TIME%
rem дата в формате 07.09.2016
set xxd=%DATE%
rem формирование трех имен для временных файлов вида
rem ~0809201630121088.tmpp1
rem ~0809201630121089.tmpp1
rem ~0809201630121080.tmpp1
rem формирование строки текущего времени (для назв. временн. файлов)
rem кол-во единиц часов+кол-во минут+кол-во секунд+кол-во д.секунд (без раздел.)
set xxb=%xxa:~-10,1%%xxa:~-8,2%%xxa:~-5,2%%xxa:~-2,2%
rem кол-во десятков часов
set xxc=%xxa:~-11,1%
rem если десятков часов нет, то дописать в xxb впереди тройку
rem иначе дописать впереди xxb кол-во десятков часов
if -%xxc%==- (set xxb=3%xxb%) else set xxb=%xxc%%xxb%
rem если число часов xxb = 0(формат времени с ведущ.0) -то дописать впереди 3
if -%xxb:~0,1%==-0 set xxb=3%xxb%
rem дни+месяцы+годы+время(xxb) -- всё без разделителей
set out1=%xxd:~0,2%%xxd:~3,2%%xxd:~6,4%%xxb%
rem out1 без последней цифры
set out2=%out1:~0,-1%
rem последняя цифра out1
set xxa=%out1:~-1%
rem прибавить 2 к последней цифре out1
set /a xxa+=2
rem out2 + последний знак из xxa
set out3=%out2%%xxa:~-1%
set /a xxa-=1
set out2=%out2%%xxa:~-1%
rem создание временного файла и вывод в него
rem получили три различных имени файла без точек
set out1=~%out1%.tmpp1
set out2=~%out2%.tmpp1
set out3=~%out3%.tmpp1
rem удаление старых временных файлов
del %TEMP%\*.tmpp1
rem вывод даты в лог
date /t > %filelogname%
:loop
rem пауза в одну сек с небольшим, между основными пингами (-n 3 = 2сек и т.д.)
ping -n 2 localhost > nul
rem вывод результатов ОДНОГО пинга в файл out1
ping %iptoping% -n 1 > %TEMP%\%out1%
rem вывод текущего времени в файл out2 (с лишним "введите" "текущее" и т.п.)
echo.|time > %TEMP%\%out2%
rem вывод времени в out3 (чистый вид с миллисекундами)
for /f "tokens=1,2,3" %%a in (%TEMP%\%out2%) do if -%%a==-Текущее (echo %%c > %TEMP%\%out3%)
rem файл аут2 больше не нужен
del /q %TEMP%\%out2%
rem создадим переменную времени timedata вида 00:00:00 (отсекая миллисек.)
for /f "tokens=1 delims=," %%a in (%TEMP%\%out3%) do set timedata=%%a
rem различный вывод при <1мс >=1мс и превыш. интервала ожидания
for /f "tokens=1,2,3,4,5,6,7" %%a in (%TEMP%\%out1%) do if -%%a==-Ответ (if -%%f==-время^<1мс (
echo %%a %%b %%c %%d %%e время^^^<1мс %%g > %TEMP%\%out3%
) else (echo %%a %%b %%c %%d %%e %%f %%g > %TEMP%\%out3%)
)else if -%%a==-Превышен (echo %%a %%b %%c %%d %%e > %TEMP%\%out3%)
rem создадим переменную пинга
for /f "tokens=*" %%a in (%TEMP%\%out3%) do set pingdata=%%a
rem запишем полученные данные в выходной файл, добавив метку времени
echo %timedata% %pingdata% >> %filelogname%
goto loopИногда может показаться, что на вашем компьютере запущено так много процессов, что вы не уверены, какие из них в порядке, а какие могут быть подозрительными или вредоносными.
Хорошим первым шагом является создание списка запущенных процессов в текстовом файле, чтобы вы могли проанализировать, какие процессы запущены. Обычно люди используют диспетчер задач для просмотра всех процессов, но он не позволяет распечатать список процессов.
К счастью, сохранить список запущенных процессов в текстовом файле в Windows очень просто. Вы сможете сохранить как идентификатор процесса (PID), так и объем памяти, используемый каждым процессом.
ЗаписьСледующие шаги для сохранения процессов в файл работают для всех версий Windows, включая Windows XP, Windows 7, Windows 8 и Windows 10.
Процессы вывода из команды Tasklist
Самый простой способ получить быстрый список процессов, запущенных в вашей системе Windows, — использовать команду tasklist. Чтобы правильно запустить команду, вам нужно запустить ее из командной строки от имени администратора.
Для этого выберите меню «Пуск» и введите «команда», затем наведите указатель мыши на командную строку, чтобы она была выделена, и выберите «Запуск от имени администратора» справа.
Примечание. Вам может потребоваться выбрать «Да» во всплывающем окне, чтобы подтвердить запуск командной строки от имени администратора.
Как только откроется командная строка, введите tasklist и нажмите ввод, чтобы увидеть список процессов, запущенных в вашей системе.
Это полезно, но не предоставляет вам список запущенных процессов в текстовом файле. Чтобы сохранить процессы в файл, повторите процесс выше, но на этот раз введите команду:
список задач> c: process_list.txt
Это выведет текстовый файл с именем process_list.txt на ваш диск C :. Вы можете изменить C: на любой другой путь, куда вы хотите поместить файл, если хотите.
Чтобы просмотреть файл, просто откройте проводник Windows и перейдите к месту, в котором вы сохранили файл списка процессов.
Чтобы просмотреть этот список процессов в Блокноте, щелкните файл правой кнопкой мыши, выберите «Открыть с помощью» и выберите «Блокнот».
Это самый быстрый и простой способ увидеть запущенные процессы в Windows через текстовый файл. Он покажет вам PID, имя сеанса, номер сеанса и использование памяти.
Сохранить процессы в файл с помощью Powershell
Powershell — это еще один инструмент для сохранения списка запущенных процессов в текстовом файле в Windows.
Powershell включает команду «get-process», которая предоставляет список всех активных процессов, запущенных на вашем локальном компьютере. Чтобы увидеть это в действии, запустите Powershell, выбрав в меню «Пуск» команду «Powershell».
Когда откроется синее окно Powershell, введите get-process и нажмите Enter. Это отобразит список всех активных процессов в вашей системе Windows.
Это обеспечивает немного больше информации о процессах, чем список задач. Тем не менее, вы должны знать, что означают заголовки.
- Дескрипторы: количество дескрипторов, открытых процессом
- NPM (K): нестраничная память, используемая процессом (в килобайтах)
- PM (K): Pageable память, используемая процессом (в килобайтах)
- WS (K): страницы в памяти, недавно использованные процессом (в килобайтах)
- VM (M): виртуальная память, используемая процессом (в мегабайтах)
- CPU (s): время процессора, используемое процессом для всех процессоров (в секундах)
- ID: идентификатор процесса
- ProcessName: имя процесса
Это здорово, но вся эта информация отображается на экране, а не в файл. Чтобы вывести эту информацию в файл, вам нужно добавить параметр Out-File в команду Get-Process.
Параметр. Process_list.txt помещает файл в путь, в котором вы запускаете команду, поэтому запишите этот путь, чтобы вы знали, где найти файл списка процессов. После запуска команды используйте тот же процесс, что и выше, чтобы открыть файл списка процессов в Блокноте.
Вы заметите, что данные в файле выглядят идентично выводу Get-Process в предыдущем окне Powershell.
Сохранить процессы в файл с помощью WMIC
Последний инструмент, которым вы располагаете в Windows, — это утилита командной строки Windows (WMIC).
Команды WMIC можно использовать только в том случае, если вы запускаете командную строку в качестве локального администратора. Для этого выполните шаги, описанные в первом разделе этой статьи, чтобы запустить командную строку Windows от имени администратора.
WMIC предоставляет вам больше информации об активных процессах, чем любая другая команда или инструмент в Windows. Если вы просто запустите команду WMIC Process в командной строке, вы увидите до 44 параметров процесса, возвращаемых для каждого активного процесса.
Проблема с запуском команды в командной строке заключается в том, что выходные данные с разделителями-пробелами выглядят беспорядочными и неорганизованными.
Команда WMIC является прекрасным примером того, когда полезен выходной файл. Вы можете вывести список процессов WMIC в файл с помощью команды: wmic /OUTPUT:C:ProcessList.txt PROCESS get / all.
Это выведет весь список в текстовый файл на диске C: с именем ProcessList.txt. Вместо того, чтобы открывать этот файл в Блокноте, вы хотите открыть его с помощью Excel, поскольку Excel может правильно отформатировать файл с разделителями табуляции.
- Откройте Excel
- Выберите Открыть, чтобы открыть новый файл.
- Выберите Обзор и перейдите к файлу ProcessList.txt.
- Выберите файл и выберите Открыть (если вы не видите файл, измените тип файла на Все файлы)
- В окне «Импорт текста» выберите «С разделителями», выберите «Мои данные имеют заголовки» и нажмите «Далее», чтобы продолжить.
- На следующем экране мастера установите флажок «Пробел» в разделе «Разделители» и установите флажок «Обрабатывать последовательные разделители как один». Нажмите Далее, чтобы продолжить.
- Выберите Готово, чтобы завершить работу мастера.
Теперь вы увидите практически все, что вам захочется узнать о каждом активном процессе в вашей системе Windows.
Заголовок каждого столбца описывает, что это за элемент данных. Вы найдете такие вещи, как путь к исполняемому файлу, дескриптор, дата установки, сбои страниц, использование файла подкачки, идентификатор процесса и многое другое.
Теперь, когда вы знаете несколько способов сохранить список запущенных процессов в текстовом файле в Windows, вам остается только выбрать тот, который подходит именно вам!
Знаете ли вы какие-либо другие способы сохранения процессов в файл? Поделитесь своими мыслями в разделе комментариев ниже.
Получение сведений о системе с помощью команды systeminfo
Для просмотра сведений о системе можно воспользоваться консольной утилитой.
Запустите командную строку от имени администратора. Введите команду «systeminfo» (без кавычек). После этого, в окне интерпретатора командной строки отобразится общая информация о системе.

Для сохранения сведений о системе на компьютер, введите в командной строке следующую команду:
systeminfo>C:\systeminfo.txt

После выполнения команды, на диске «С» компьютера будет сохранен файл «systeminfo» в формате «TXT».
Этот файл лучше открыть не в Блокноте (там будут проблемы с кодировкой русских букв), а в альтернативном текстовом редакторе, например, Notepad++, который поддерживает различные кодировки.
Утилита msinfo32. exe (Сведения о системе)
Утилита msinfo32.exe (Сведения о системе) позволяет получить подробную информацию о компьютере: аппаратных ресурсах, компонентах, программной среде.
- Для запуска утилиты msinfo введите в поле «Поиск в Windows» выражение «msinfo32» (без кавычек).
- Поиск выдаст лучшее соответствие. Запустите классическое приложение «Сведения о системе».

Второй способ запуска утилиты msinfo32:
- Нажмите одновременно на клавиши клавиатуры «WIndows» + «R».
- В окне «Выполнить», в поле «Открыть» введите выражение «msinfo32» (без кавычек), а затем нажмите на кнопку «ОК».
После этого, начнется сбор сведений о системе, откроется окно утилиты «Сведения о системе», в котором отображена основная информация об операционной системе Windows, об оборудовании и компонентах.
Обычному пользователю обычно достаточно этих сведений.

Специалисты могут посмотреть другие параметры системы: аппаратные ресурсы, компоненты, программная среда. В каждом разделе собраны подкатегории, в которых отображены подробные данные обо всех параметрах системы.
Полученные сведения можно сохранить в файл на компьютере. Войдите в меню «Файл», нажмите на пункт «Сохранить» («Ctrl» + «S») для сохранения информации в файле сведений о системе (*.NFO), или на пункт «Экспорт» для сохранения данных в текстовом файле (формат *.TXT).
Синтаксис команды systeminfo
Как использовать команду systeminfo
Давайте узнаем, как получать информацию о компьютере с помощью команды Windows systeminfo.
- Нажимаем на клавиатуре компьютера клавиши (клавиша с логотипом Windows) и . Откроется окно «Выполнить».
- В поле Открыть: введите cmd и нажмите кнопку . Откроется командная строка.
- В командной строке введите: systeminfo
- Нажмите клавишу на клавиатуре компьютера.
- Дождитесь загрузки информации.
Отобразиться следующая информация:
Информация о системе в Windows PowerShell
Ознакомится с нужными данными об операционной системе можно с помощью встроенного инструмента системы Windows PowerShell.
Запустите Windows PowerShell на компьютере, введите команду «systeminfo» (без кавычек), а затем нажмите на клавишу клавиатуры «Enter».
В окне Windows PowerShell вы увидите общие данные о системе.

Дополнительные параметры команды systeminfo
- /s компьютер. Указать имя или IP-адрес удаленного компьютера, к которому мы хотим подключиться. По умолчанию используется локальный компьютер.
- /u домен\пользователь. Этот параметр используется для запуска команды systeminfo с разрешениями учетной записи пользователя, указанными в домен\пользователь. По умолчанию используются разрешения пользователя, вошедшего в систему на компьютере, на котором выполняется команда.
- /p пароль. Задает пароль пользователя, указанный в параметре /u.
- /fo формат. Определяет формат, в котором будет отображаться вывод. Допустимые значения TABLE, LISTи CSV. Формат по умолчанию для вывода LIST.
- /nh. Удалить заголовки столбцов в выводе. Этот параметр действителен только форматах TABLE или CSV.
- /?. Отображает справку для команды syteminfo.
Вывод обхода дерева в файл
10.12.2015, 01:36. Показов 1384. Ответов 2

Есть бинарное дерево, не могу реализовать в нем вывод обхода дерева в файл из функции show(Node *&der), вроде как-то можно забить данные из функции в массив, а уже потом записать, но я уже голову сломал с этой функцией, помогите пожалуйста
Перенаправление стандартных ввода-вывода и ошибок
С помощью переназначения устройств ввода/вывода одна программа может направить свой вывод на вход другой или перехватить вывод другой программы, используя его в качестве своих входных данных. Таким образом, имеется возможность передавать информацию от процесса к процессу при минимальных программных издержках. Практически это означает, что для программ, которые используют стандартные входные и выходные устройства, операционная система позволяет:
- выводить сообщения программ не на экран (стандартный выходной поток), а в файл или на принтер (перенаправление вывода);
- читать входные данные не с клавиатуры (стандартный входной поток), а из заранее подготовленного файла (перенаправление ввода);
- передавать сообщения, выводимые одной программой, в качестве входных данных для другой программы (конвейеризация или композиция команд).
Из командной строки эти возможности реализуются следующим образом. Для того, чтобы перенаправить текстовые сообщения, выводимые какой-либо командой из командной строки, в текстовый файл, нужно использовать конструкцию команда > имя_файла. Если при этом заданный для вывода файл уже существовал, то он перезаписывается (старое содержимое теряется), если не существовал создается. Можно также не создавать файл заново, а дописывать информацию, выводимую командой, в конец существующего файла. Для этого команда перенаправления вывода должна быть задана так: команда >> имя_файла. С помощью символа < можно прочитать входные данные для заданной команды не с клавиатуры, а из определенного (заранее подготовленного) файла: команда < имя_файла
Примеры перенаправления ввода/вывода в командной строке
Приведем несколько примеров перенаправления ввода/вывода.
1. Вывод результатов команды ping в файл ping ya.ru > ping.txt
2. Добавление текста справки для команды XCOPY в файл copy.txt: XCOPY /? >> copy.txt
В случае необходимости сообщения об ошибках (стандартный поток ошибок) можно перенаправить в текстовый файл с помощью конструкции команда 2> имя_файла В этом случае стандартный вывод будет производиться на экран. Также имеется возможность информационные сообщения и сообщения об ошибках выводить в один и тот же файл. Делается это следующим образом: команда > имя_файла 2>&1
Например, в приведенной ниже команде стандартный выходной поток и стандартный поток ошибок перенаправляются в файл copy.txt: XCOPY A:\1.txt C: > copy.txt 2>&1
Выводы статьи
Пользователь может получить сведения о системе с помощью средств операционной системы Windows: с помощью утилиты msinfo32.exe, или с помощью выполнения команды systeminfo в консольной утилите или в Windows PowerShell.



