Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Определение системы с условием

Новый участник


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

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


Изменения
Автор: olga_maksi29
Дата: 03-09-2022
Изображения
Тип файла: jpg 11.jpg
(86.8 Kb, 15 просмотров)
Доброе утро. Помогите горю горевать
Пытаюсь создать bat файл ( который будет хранится в сетевой папке ) с определённым, но простым назначением
1) Требуется что бы bat файл запускался с повышенными правами (c запросом UAC) или с запросом на повышения прав
но с этим относительно понятно .
2) Дальше определялась бы система по нескольким условиям:
если это Windows XP
- применить все reg файлы и bat файлы в папке с батником с директории WindowsXP
Windows 7 и выше (8/10/11 включительно)
- применить все reg файлы и bat файлы в папке с батником с директории Windows7+
Windows 8/8.1
- применить все reg файлы и bat файлы в папке с батником с директории Windows8+
Windows 10
- применить все reg файлы и bat файлы в папке с батником с директории Windows10
Windows 11
- применить все reg файлы и bat файлы в папке с батником с директории Windows11

определить разрядность системы (x64/x86 )( всё выше windows XP)
- применить все reg файлы и bat файлы в папке с батником с директории x64

разрядность системы (x86)
- применить все reg файлы и bat файлы в папке с батником с директории x86

Вроде всё просто

1) решение или bat конвертировать в exe и добавлять манифест или я читала о способе добавить в bat asInvoker
2) второй пункт у меня получается очень большим
Может кто сможет подсказать элегантное и простое решение.

Отправлено: 11:26, 03-09-2022

 

Новый участник


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

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


Примерно у меня вот так вышло
Код: Выделить весь код
@echo off
SETLOCAL
set __COMPAT_LAYER=RunAsHighest
set curr_OS=
Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" ( If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86)
REM
ver | findstr /i "5\.1\."        && (set curr_OS=WindowsXP& GOTO :NOTTESTEDWIN) 
ver | findstr /i "6\.1\." > nul  && (set curr_OS=Windows7+& GOTO :TESTEDWIN & GOTO :TESTEDOSX)
ver | findstr /i "6\.2\." > nul  && (set curr_OS=Windows8+& GOTO :NOTTESTEDWIN & GOTO :TESTEDWIN& GOTO :TESTEDOSX)
ver | findstr /i "6\.3\." > nul  && (set curr_OS=Windows8+& GOTO :NOTTESTEDWIN & GOTO :TESTEDWIN& GOTO :TESTEDOSX)
ver | findstr /i "10\.0\." > nul && (set curr_OS=Windows10& GOTO :NOTTESTEDWIN & GOTO :TESTEDWIN& GOTO :TESTEDOSX)
ver | findstr /i "11\.0\." > nul && (set curr_OS=Windows11& GOTO :NOTTESTEDWIN & GOTO :TESTEDWIN& GOTO :TESTEDOSX)
echo xOS
:NOTTESTEDWIN
for %%k in (%~dp0%curr_OS%\*.reg) do regedit.exe /s "%%~k"
for %%i in (%~dp0%curr_OS%\*.bat) do call "%%~i"
:TESTEDWIN
for %%k in (%~dp0Windows7+\*.reg) do regedit.exe /s "%%~k"
for %%i in (%~dp0Windows7+\*.bat) do call "%%~i"
:TESTEDOSX
for %%k in (%~dp0%xOS%\*.reg) do regedit.exe /s "%%~k"
for %%i in (%~dp0%xOS%\*.bat) do call "%%~i"
pause

Отправлено: 10:42, 05-09-2022 | #2



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

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


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Вроде того (powershell):
Код: Выделить весь код
#Requires -RunAsAdministrator

$os = gwmi win32_operatingsystem |select caption, osarchitecture

switch ($os.caption -replace '.*Windows (XP|[\d\.]+).*','$1') {
    'XP'{
        "применить все reg файлы и bat файлы в папке с батником с директории WindowsXP"
    }
    '7' {
        "применить все reg файлы и bat файлы в папке с батником с директории Windows7+"
    }
    '8*' {
        "применить все reg файлы и bat файлы в папке с батником с директории Windows7+"
        "применить все reg файлы и bat файлы в папке с батником с директории Windows8+"
    }
    '10' {
        "применить все reg файлы и bat файлы в папке с батником с директории Windows7+"
        "применить все reg файлы и bat файлы в папке с батником с директории Windows10"
    }
    '11' {
        "применить все reg файлы и bat файлы в папке с батником с директории Windows7+"
        "применить все reg файлы и bat файлы в папке с батником с директории Windows11"
    }
}

switch ($os.osarchitecture -replace '\D') {
    '32' {
        "применить все reg файлы и bat файлы в папке с батником с директории x86"
    }
    '64' {
        "применить все reg файлы и bat файлы в папке с батником с директории x64"
    }
}
Как именно "применить все reg файлы и bat файлы", не подскажу, но вряд ли это трудно сделать самому.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:53, 05-09-2022 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Cmake определение системы 007exe Общий по Linux 0 14-05-2020 22:44
Любой язык - Батник с условием Sergey666 Скриптовые языки администрирования Windows 4 25-03-2019 08:41
Прочие БД - VIEW с условием biosonar7 Программирование и базы данных 0 10-04-2014 08:08
CMD/BAT - [решено] Определение разрядности системы Frozen2006 Скриптовые языки администрирования Windows 3 31-07-2009 01:05
Определение операционной системы unreliable Программирование и базы данных 10 28-06-2004 16:19




 
Переход