Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Получение температуры диска через cmd сценарий.

Ответить
Настройки темы
Любой язык - [решено] Получение температуры диска через cmd сценарий.

Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Добрый день.

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

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 08:35, 28-06-2013

 

Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:52, 28-06-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


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

Т.е. hddtemp.cmd parm?

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 08:13, 01-07-2013 | #3


Пользователь


Сообщения: 130
Благодарности: 29

Профиль | Отправить PM | Цитировать


voler, Вот ещё.

-------
Login: Crazy Noise; Copyright ©2013, Crazy Noise.


Отправлено: 10:20, 01-07-2013 | #4


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Цитата Crazy Noise:
ещё »
Это не то.

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

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 11:02, 01-07-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Так?
читать дальше »
Код: Выделить весь код
@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]

Отправлено: 12:12, 01-07-2013 | #6


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Цитата 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

-------
Linux, это плацдарм для изучения своих возможностей.


Отправлено: 15:08, 01-07-2013 | #7


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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

Последний раз редактировалось kiripanda, 01-07-2013 в 19:30.


Отправлено: 19:16, 01-07-2013 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Отправлено: 23:17, 01-07-2013 | #9


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Iska, Тогда уж лучше просто %*
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:23, 01-07-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Получение температуры диска через cmd сценарий.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - [решено] Сценарий для запуска защиты системы через AD wiznv Windows Server 2008/2008 R2 2 29-11-2011 09:13
Командный сценарий для копирования файла (Файл .cmd) p-xel Автоматическая установка Windows 2000/XP/2003 3 28-11-2011 03:01
CMD/BAT - [решено] Как через настроить параметры питания через CMD Anarasius Скриптовые языки администрирования Windows 1 20-11-2009 09:56
Получение содержимого картинки через tcp malev AutoIt 6 10-09-2009 19:49
Как через сценарий входа подключять источник данных ODBC ? Большой Кол Microsoft Windows NT/2000/2003 2 16-02-2009 08:27




 
Переход