Интересная тема. Иногда в командной строке необходимо определить версию ОС, потому что в некоторых алгоритмах решений конкретных задач существуют разные подходы у разных версий ОС Windows.
Вашему вниманию предлагается простой шаблон определения версии ОС из командной строки:
Echo Off
For /F "Tokens=2 Delims=[]" %%i In ('ver') Do (
For /F "Tokens=2,3 Delims=. " %%a In ("%%i") Do Set version=%%a.%%b
)
If "%version%"=="4.0" GoTo NT
If "%version%"=="95" GoTo W95
If "%version%"=="98" GoTo W98
If "%version%"=="ME" GoTo ME
If "%version%"=="5.0" GoTo W2000
If "%version%"=="5.1" GoTo XP
If "%version%"=="5.2" GoTo W2003
If "%version%"=="6.0" GoTo Vista
IF "%version%"=="6.1" GoTo W7_2008
If "%version%"=="6.2" GoTo W8_2012
GoTo Continue
Стоит такая задача, чтобы каждые два часа у всех пользователей домена появлялась надпись по середине экрана "Какая-то надпись". Операционные системы в компании разные, от ХР, до 10-ки. Сервер 2008 Std. Через msg.exe начиная с Win8 уже не работает. Написал скриптик на vbs. Но он почему-то отрабатывает только на ХР, у пользователей с 7,8 и 10 не отрабатывает. Хотя если этот скрипт попробовать запустить двойным щелчком, то надпись появляется. Что может быть не так? Как правильно написать скрипт, чтобы он отрабатывался на всех версиях виндовс?
Автор никогда не пробовал запускать этот сценарий на виндовс "Windows XP"? В "MS DOS" синтаксис команды FOR не настолько богат, как в "Windows XP" и такой батник на старших версиях попросту не сработает.
Во-первых, автор данного скрипта и создал его на "хрюшке". Во-вторых, в статье приводится лишь как пример, по аналогии которого можно создать скрипт под свои нужды. Вот пример работы скрипта на "хрюшке" (первую строку закоментировал для наглядности, вместо проверки условий указал echo %version% для наглядности:
Уточните, пожалуйста, в каком случае у Вас скрипт не заработал...
Прошу меня простить, за то что не правльно выразился, или простить модератора, который возможно некорректно исправил мое сообщение. Исходная строка моего сообщения: "Автор никогда не пробовал запускать этот сценарий на виндовс СТАРШЕ "Windows XP"? " Имелось ввиду версии системы старше "XP" Например Windows 95 или 98, которые присутствуют в списке определяемых версий в скрипте.
Скрипт, как идея, конечно-же да. Фильтрация вывода команды ver с помошью цыкла for. Но не нужно подавать его в виде готового решения для всех указанных версий систем. Достаточно первых пару строк, что-бы было как идея, дабы не вводить в заблуждение неопытного пользователя. Потому-что он не в состоянии работать на Windows 98 например, возможно и на "Windows 2000". Потому-что, синтаксис команды "for" отличается, также отличается выводящееся сообщение команды ver ( [] - присутствуют не везде от версии к версии).
P.S. Но я не люблю тратить время впустую, все это можно было-бы понять исходя из моего первого сообщения. Если модераторы имеют намеения и далее коверкать сообщения не в думываясь в их смысл, то тогда мне сдесь делать нечего. Невелика потеря. И так времени много потратил на излишние обьяснения.
Ваше сообщение никто не исправлял и никто здесь ни над кем не смеётся - это первое. Второе - данный скрипт, как видно из его содержимого, не проверялся на работоспособность только на десятке и на новой серверной платформе 2016! На всех платформах, что указаны в условиях проверки этот скрипт уже давно был проверен ещё до публикации на сайте, так как имеется возможность запустить на разных платформах. Третье - приведён полный список намеренно, дабы люди, которые ещё мало знают, понимали, какое значение выдаёт команда "ver" в разных версиях операционной системы. И четвёртое - под кодом написана замечательная фраза, расставляющая все точки над i" - "Пользуйтесь шаблоном на здоровье под свои нужды." Шаблон - это шаблон, а не готовый код, который можно взять и начать пользоваться. Повторю свой вопрос: если лично у Вас в каком-то месте он не запустился, то милости просим - описываем в комментариях полную ситуацию.
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]