![]() |
Проблема с Java Script
Задача: Организовать вывод информации о ЖД.
@set @x=0 /*; @echo off SetLocal EnableExtensions EnableDelayedExpansion for /F "skip=1 tokens=1-2" %%A in ('WMIC DiskDrive get Model^,Size^') do ( set name=%%A set tmp=%%B& call :_Math !tmp! set size=!Result! echo Дисковый накопитель: !name! Обьём: !size! Gb>>1.txt ) :_Math set Result= for /F "tokens=1-2 delims=," %%A in ('Cscript //nologo /e:jscript "%~f0" "%~1" "Div" "1073741824"') do ( set tmp=%%B& set old=!tmp:~0,2! set "Result=%%A,!old!" ) exit /b */try { switch (WScript.Arguments(1)) { case "Div": WScript.Echo (+WScript.Arguments(0) / +WScript.Arguments(2)); break; } } catch (e) { } На выходе получается такое: ST1000DM003-9YN162 ЋЎмс¬: -1,#I Gb Не показывает необходимый выход в ГБ. Очень плохо знаком с JS, прошу помочь. Никак не разобраться. |
Я так понимаю, что он по своему распознаёт строку Size, Но вот что интересно, при данной обработке LogicalDisk аналогичной строки Size - всё прекрасно отрабатывает. Вообще WMIC живёт какой-то своей жизнью, и всё в нём непросто. Советов множество, но все они индивидуальны, для решения одной проблемы подходят, а для решения другой, но аналогичной уже не работают.
|
«wmic.exe» тут совершенно не причём. Сделайте вывод:
Код:
wmic.exe DiskDrive get Model, Size WSH
Код:
For Each objSWbemObjectEx In GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("SELECT Model, Size FROM Win32_DiskDrive") PowerShell
Код:
Get-WmiObject -Class Win32_DiskDrive | ForEach-Object -Process { |
Iska, спасибо. Уже запустил ps1 из батника, отрабатывает отлично. Буду применять такой приём при возникновении типичных ошибок. Переходить пока не хочу, ибо bat для меня более логичен, проще воспринимается. Но параллельно изучаю и другие методы, в частности js, vbs, ps. Вообще если применять их параллельно, можно автоматизировать практически любой процесс в винде. И главное это интересно, хоть и смахивает порой на головоломку.
|
Время: 13:38. |
Время: 13:38.
© OSzone.net 2001-