Тема: AHK: Работа с diskpart
Написал скриптик, который проверяет состояние Рейда на основе diskpart.
В hdd1.txt я прописываю list volume.
А из hdd2.txt парсю результат.
Возможно ли легким способом обойтись без создания этих файлов?
То есть, передать list volume в diskpart и скопировать в буфер обмена результат.
#NoTrayIcon
loop
{
FileDelete, C:\hdd1.txt
FileDelete, C:\hdd2.txt
FileAppend, list volume, C:\hdd1.txt
Runwait, %comspec% /c ""DISKPART.exe" "/s" "C:\hdd1.txt" > "C:\hdd2.txt"", , hide
Loop, read, C:\hdd2.txt
{
If (instr(A_LoopReadLine, "Failed") || instr(A_LoopReadLine, "At Risk"))
{
errors = 1
StringMid, disk, A_LoopReadLine, 16, 1
break
}
}
FileDelete, C:\hdd1.txt
FileDelete, C:\hdd2.txt
If errors = 1
{
Menu, Tray, Icon
Gui,+AlwaysOnTop
Gui, -MinimizeBox -MaximizeBox
Gui, Font, s80, Times New Roman
Gui, Add, Text,, Problema s Raid: %disk%
Gui, Show,, RaidError
Gui, +LastFound
OnMessage(0x112, "WM_SYSCOMMAND")
Return
}
sleep, 3600000
}
WM_SYSCOMMAND(wParam)
{
if (A_Gui = 1 && wParam = 0xF060) ; SC_CLOSE
return 0
} 
