как сказать, на какой версии окон и/или cmd.exe пакетный файл работает?

Для тех из нас работающий в C#, в Windows SDK существует приложение "UACDemo" как часть "Перекрестных Технологических Образцов". Они находят, является ли текущий пользователь администратором, использующим этот метод:

private bool IsAdministrator
{
    get
    {
        WindowsIdentity wi = WindowsIdentity.GetCurrent();
        WindowsPrincipal wp = new WindowsPrincipal(wi);

        return wp.IsInRole(WindowsBuiltInRole.Administrator);
    }
}

(Примечание: Я осуществил рефакторинг исходный код, чтобы быть свойством, а не "если" оператор)

14
задан 4 revs 20 June 2012 в 18:37
поделиться

2 ответа

Версия cmd.exe должна на самом деле быть неуместной, если вы не попытаетесь использовать функции, которых раньше не было (в команде . com например). Существует псевдопеременная

%cmdextversion%

, которая содержит версию расширений команд, которая была 2 годами (по крайней мере, до NT 4, iirc).

Но вернемся к сути: Running ver и анализ строки версии может быть вашим лучшим выбором:

for /f "tokens=2 delims=[]" %%x in ('ver') do set WINVER=%%x
set WINVER=%WINVER:Version =%
7
ответ дан 1 December 2019 в 07:12
поделиться

Введите "ver" в командной строке.

В следующий раз, поскольку это на самом деле не связано с программированием, а связано с сервером или пользователем, вы можете попробовать serverfault.com или superuser.com .

3
ответ дан 1 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: