Имя: Пароль:
IT
Админ
Вопрос по батникам
,
0 Jump
 
28.09.11
16:00
Есть идеи как из батника узнать ОСь и файловую систему?
1 Господин ПЖ
 
28.09.11
16:01
разрешаю сделать это из православного vbs
2 Jump
 
28.09.11
16:11
(1)Оно конечно так, только вот у меня есть готовый батник, в котором хотелось бы чуток подправить функционал, а не переписывать все на vbs.
3 filh
 
28.09.11
16:13
это на первое
@Echo Off

For /F "Skip=4 Tokens=3" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CurrentVersion') Do Set OSver=%%A

For /F "Skip=4 Tokens=3" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CurrentBuildNumber') Do Set OSver=%OSver%.%%A


For /F "Skip=4 Tokens=3,*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion') Do Set SPver=%%A %%B

Echo %OSver%
Echo %SPver%
4 Vladal
 
28.09.11
16:19
(3) Прикольно. Поделись, где нарыл
5 SeregaMW
 
28.09.11
16:21
(4) Наверное неожиданно - Из Интернета
6 Vladal
 
28.09.11
16:22
7 smaharbA
 
28.09.11
16:22
ver
8 Vladal
 
28.09.11
16:23
(7) ver выдаст только номер билдя, а (3) еще и имя сервиспака
9 smaharbA
 
28.09.11
16:26
(8) и чо ?
wmic os get /format:htable > %temp%\os.html & explorer %temp%\os.html
10 Vladal
 
28.09.11
16:27
Хотя да, ver проще.
wmic могут использовать только администраторы
11 smaharbA
 
28.09.11
16:27
wmic os get /format:hform > %temp%\os.html & explorer %temp%\os.html
12 Vladal
 
28.09.11
16:31
ты меня всегда поражаешь
13 aleks-id
 
28.09.11
16:33
systeminfo
14 rintik
 
28.09.11
16:57
ОС можно узнать через Environment Variables — Переменные среды окружения, полный список на http://win-server.ru/p/38

WshShell = Новый COMОбъект("WScript.Shell");
ОС = WshShell.ExpandEnvironmentStrings("%OS%");
15 aleks-id
 
28.09.11
17:12
(14) а теперь внематочно изучи (0) и скажи каким боком ты это вкрутишь в батник...
16 smaharbA
 
28.09.11
17:14
(10) не обязательно
echo off
set x=about:^<script^>self.resizeTo(0,0);^
os=new Enumerator(GetObject('winmgmts://./root/cimv2').ExecQuery('select * from Win32_OperatingSystem where primary=true')).item();^
stdout=new ActiveXObject('scripting.filesystemobject').GetStandardStream(1);^
x=new Enumerator(os.Properties_);^
for (;!x.atEnd();x.moveNext())^
stdout.WriteLine(x.item().Name + '=' + x.item().Value);^
self.close()^</script^>
mshta "%x%" | find /v ""
17 andrewks
 
28.09.11
17:16
охренеть. вечерняя разминка батникописателей )))
18 aleks-id
 
28.09.11
17:24
fsutil fsinfo volumeinfo C:\
19 Jump
 
28.09.11
17:26
Спасибо всем!
С ОС понятно, а ФС возможно али нет?
20 smaharbA
 
28.09.11
17:27
см (18)
21 Jump
 
28.09.11
17:31
Ветку не обновил, поэтому (18) не видел, еще раз спасибо.
22 IVIuXa
 
28.09.11
18:13
+
температуру проца ?
23 smaharbA
 
28.09.11
18:17
+
set x=javascript:self.resizeTo(0,0);^
fso=new ActiveXObject('scripting.filesystemobject');^
stdout=fso.GetStandardStream(1);^
e=new Enumerator(fso.Drives);var s='';^
for (;!e.atEnd();e.moveNext()){x = e.item(); stdout.WriteLine(x.DriveLetter + '=' + (x.IsReady ? x.FileSystem : 'Not Ready'));}^
self.close()
mshta "%x%" | find /v ""
24 smaharbA
 
28.09.11
18:17
(22) можно
25 IVIuXa
 
28.09.11
18:24
(24)
wmic temperature get /format:list

отсутствует экземпляр класса
26 smaharbA
 
28.09.11
18:26
это если поддерживается SMBIOS
27 IVIuXa
 
28.09.11
18:28
(26)
не факт
28 smaharbA
 
28.09.11
18:30
wmic /namespace:\\root\wmi path MSAcpi_ThermalZoneTemperature get /format:list
29 smaharbA
 
28.09.11
18:30
разделить на 10 и отнять абсолютный ноль
30 IVIuXa
 
28.09.11
18:37
(28)
нашел все таки :)
31 IVIuXa
 
29.09.11
04:36
(28)
MSAcpi класс
просто интересно как ты узнал что в нем есть температура ?
32 smaharbA
 
29.09.11
07:15
оно все самодокументировано
очень прекрасный инструмент для изучения вми
это wbemtest.exe - присутствует штатно
33 IVIuXa
 
29.09.11
07:26
(32)
wbemtest - эт понятно
где документирован MSAcpi ?
34 smaharbA
 
29.09.11
07:30
подключаешься к root\wmi - Классы - рекурсивно и смотришь все подряд
про систему счисления уже в соцсети от микрософта узнал
35 IVIuXa
 
29.09.11
17:55
(34)
должен быть драйвер термальной зоны
не на всех компах есть
на C# через запрос к wmi делается
короче с этими датчиками та еще байда....
36 pectopatop
 
02.10.11
17:41
ПО-моему щас понятие "версия ОС" несколько размыто:
взять ту же ВинХР - есть куча официальных паков/версий, и еще большая куча неофициальных.
К примеру DLL-ек пару подменили на свои
37 Torquader
 
02.10.11
21:53
(36) Так подмена dll вообще к версии ОС никаким боком не относится, так как часть dll вообще ставится вместе с приложениями.
38 pectopatop
 
02.10.11
23:03
(37) да здрасьте!
А ОС это что - не набор DLLек?
39 pectopatop
 
02.10.11
23:03
и драйверов всяких
40 Torquader
 
02.10.11
23:28
(39) Ось - это ядро, и его обвязка. Dll ядра определяют версию системы, а обвязка (драйвера) скорее даже определяют железо, на котором эта Ось работает.
Сторонние dll, в которые вынесены частоупотребимые системные вызовы, которые упрощают написание программ, никак не определяют версию системы.
Например, xml-парсер, может иметь практически любую версию вне зависимости от версии Ос (ну, на некоторых он просто не работает).
41 pectopatop
 
03.10.11
01:21
(40) думаешь я это не знаю?
что мешает подменить вот это - "Dll ядра определяют версию системы"?
Права? метка "системный"?
42 Torquader
 
03.10.11
20:33
(41) Ничего не мешает, только большая вероятность, что не взлетит или "посинеет" в процессе.
А так, по хорошему, надо как в Linux - брать версию каждого компонента, который тебе нужен.
43 smaharbA
 
03.10.11
21:26
в линуксе нет компанент
44 gr13
 
03.10.11
21:29
ver
45 smaharbA
 
03.10.11
21:31
но интересно, что есть в (43) лох и никто не знает как 1.4 тока, а мощность та же
46 Академик_
Келдыш
 
03.10.11
21:37
Почитал тут...  Какая винда??? Прикинем что стоит голый мсдос версии 3.22
47 smaharbA
 
03.10.11
21:37
не поверишь
48 Академик_
Келдыш
 
03.10.11
21:40
(47) это говорит тот, благодаря которому я чуть ящик коньяка не проспорил на энергии пули и ружья?))))))
49 smaharbA
 
03.10.11
21:42
(48) да
50 smaharbA
 
03.10.11
21:43
поверь - коли не лох как (47) не проспоришь )
51 pectopatop
 
04.10.11
18:44
(46) там 6.22 была популярная версия, последняя вроде даже
52 Vladal
 
05.10.11
17:03
(51) емнип, 6.22 была последней ДОС до выхода Windows 95, которая как работала и на 6.22 и на 7.0
Но Win98 точно работала на DOS 7
53 Vladal
 
05.10.11
17:04
Кстати, а популярной ДОС была таки 3.22 - ей комплектовались машины на процессоре 086 и 286. Хотя позже выходили MS DOS 4 и 5-й версии, но более функциональная и была таки 6.22
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.