Я пытаюсь запустить команду 1 (wmi c diskdrive get status) и команду 2 (wmi c OS GET LocalDateTime / VALUE) и записать вывод в виде одной строки в файл.
справочная информация Мне нужно отслеживать состояние SMART с активным агентом zabbix. Windows версия одна без PowerShell, и у меня там очень ограниченные права пользователя. У меня есть около 50 машин, которые мне нужно контролировать, и скрипт .bat - самое жизнеспособное решение, которое у меня есть
Справочная информация заканчивается
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "INTEXTFILE=c:\zabbix\smart_log.txt"
set "OUTTEXTFILE=c:\zabbix\smart_log_out.txt"
(wmic diskdrive get status
wmic OS GET LocalDateTime /VALUE) 1> %INTEXTFILE%
Все идет нормально. Я получаю smart_log.txt с информацией:
Status
OK
LocalDateTime=20200114155453.199000+120
С этого момента я пытаюсь отредактировать этот файл, чтобы получить все эти данные в виде одной строки, но здесь я столкнулся с проблемой , я попробовал этот ответ но не повезло.
setlocal EnableDelayedExpansion
set row=
for /f %%x in (%INTEXTFILE%) do set "row=!row! %%x"
>%OUTTEXTFILE% echo %row%
Все, что я там получаю:
ECHO is off.
Моя цель - получить файл со строкой:
Status OK (*maybe multiple OK OK OK if there are many disks) LocalDateTime=20200114155453.199000+120