Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Получение температуры диска через cmd сценарий. (http://forum.oszone.net/showthread.php?t=263331)

voler 28-06-2013 08:35 2175701

Получение температуры диска через cmd сценарий.
 
Добрый день.

Посоветуйте как получить температуру hdd средствами windows?
smartctrl.exe или DickTemp.exe пробовал.

kiripanda 28-06-2013 19:52 2176061

Код:

@echo off &setlocal enableextensions

for /f "tokens=8" %%a in ('smartctl.exe -f brief -A sda ^|findstr /c:Temperature_Celsius') do set /a Temperature=%%a
set Temperature

pause


voler 01-07-2013 08:13 2177143

А как сюда в писать передачу sda, sdb или любого другого диска?

Т.е. hddtemp.cmd parm?

Crazy Noise 01-07-2013 10:20 2177199

voler, Вот ещё.

voler 01-07-2013 11:02 2177213

Цитата:

Цитата Crazy Noise
ещё »

Это не то.

Вот не много изменил
Код:

for /f "tokens=8" %%a in ('smartctl.exe -f brief -A sda ^|findstr /c:Temperature_Celsius') do ECHO %%a
Но вопрос по передачи параметра остается, т.е. в место sda нужно передать аргумент из командной строки. Как это лучше сделать?

Iska 01-07-2013 12:12 2177255

Так?
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sDevice=%~1

if defined sDevice (
        for /f "usebackq tokens=8" %%i in (
                `@"%ProgramFiles%\smartmontools\bin\smartctl.exe" -f brief -A %sDevice% ^| find.exe /i "Temperature_Celsius"`
        ) do set /a iTempture = %%i

        if defined iTempture echo Tempture: [!iTempture!]
) else (
        echo Usage: %~nx0 ^<device^>
)

endlocal
exit /b 0

Цитата:

Код:

D:\Install\Smartmontools\Smartmontools 5.41>0001.cmd sdc
Tempture: [36]



voler 01-07-2013 15:08 2177371

Цитата:

Цитата Iska
Так? »

Переделал так с вашего позволения
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sDevice=%~1
SET SMARTCTL="C:\Program Files\NSClient++\scripts\smartctl.exe"

if defined sDevice (
        for /f "usebackq tokens=8" %%i in (
                `@%SMARTCTL% -f brief -A %sDevice% ^| find.exe /i "Temperature_Celsius"`
        ) do set /a iTempture = %%i

        if defined iTempture echo !iTempture!
) else (
        echo Usage: %~nx0 ^<device^>
)

endlocal
exit /b 0


kiripanda 01-07-2013 19:16 2177535

Код:

@echo off &setlocal enableextensions
:: Usage: Temperature.cmd sda sdb

set smartctl="C:\Program Files\NSClient++\scripts\smartctl.exe"

for %%d in (%~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9) do (
for /f "tokens=8" %%t in ('%smartctl% -f brief -A %%d ^|findstr /c:Temperature_Celsius') do echo Temperature %%d = %%t
)

pause


Iska 01-07-2013 23:17 2177714

kiripanda, а ежели параметров на один больше окажется ;)? Лучше уж с «shift» работать, наподобие:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sHasParameters=%~1

if not defined sHasParameters (
        echo Usage: %~nx0 ^<device^>
        goto :eof
)

:Repeat

set sDevice=%~1

if not defined sDevice goto :eof

for /f "usebackq tokens=8" %%i in (
        `@"%ProgramFiles%\smartmontools\bin\smartctl.exe" -f brief -A "%sDevice%" ^| find.exe /i "Temperature_Celsius"`
) do set /a iTempture = %%i

if defined iTempture echo Tempture of [%sDevice%]: [!iTempture!]

shift
goto :Repeat


endlocal
exit /b 0


Foreigner 01-07-2013 23:23 2177717

Iska, Тогда уж лучше просто %*

Iska 02-07-2013 06:31 2177830

Foreigner, тоже логично ;).


Время: 21:04.

Время: 21:04.
© OSzone.net 2001-