Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Определение разрядности OS, если 32, выполнять 32.exe, если 62, то выполнить 64.exe

Аватара для O L E G

Старожил


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


Конфигурация

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


Доброго времени суток,
Подскажите по скрипту, нужно добавить скрипт в программу, т.е запускаю программу она определяет что Винда 64x и выполняет файл 64 разрядности, если 32х то 32 битный.
Так как буду использовать 2ва файла, один 64 другой 32, hobocopy32.exe - hobocopy64.exe
Спасибо огромное, не хватает этого только момента.
Сам код
Скрытый текст

@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
set sPrevCP=%%i
chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:var objShellApp = new ActiveXObject('Shell.Application');var Folder = objShellApp.BrowseForFolder(0, 'SELECT DISK',1, '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}');try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch (e){};close();" ^
1^|more`
) do set sFolderName=%%i

chcp %sPrevCP% >nul

if defined sFolderName (
echo Выбрана папка: %sFolderName%

msg * Save to Reserve %sFolderName%a1_Backup

:: Восстановление службы vss
regedit /s vss.reg
TIMEOUT 2

:: Запуск Службы Теневого Копирования\Восстановление на Деф. настройки
net start VSS
TIMEOUT 2

:: Создаем папки
mkdir %sFolderName%a1_Backup\BCD\%date%\
mkdir %sFolderName%a1_Backup\CONFIG\%date%\
mkdir %sFolderName%a1_Backup\NTUSER\%date%\

:: сохраняем параметры загрузки (ms - dos \ кириллица dos)
bcdedit.exe /v > %sFolderName%a1_Backup\BCD\%date%\bootconf.rtf > %sFolderName%a1_Backup\BCD\%date%\BCD_%date%.cfg

:: резервная копия загрузчика
bcdedit.exe /export %sFolderName%a1_Backup\BCD\%date%\BCDfile

::
echo the path to the file %systemdrive%\bootmgr > %sFolderName%a1_Backup\BCD\%date%\bootmgr.log
hobocopy /y %systemdrive%\ %sFolderName%a1_Backup\BCD\%date%\ bootmgr >> %sFolderName%a1_Backup\BCD\%date%\bootmgr.log

echo the path to the file %windir%\System32\drivers\etc\hosts > %sFolderName%a1_Backup\CONFIG\%date%\hosts.log
hobocopy /y %windir%\System32\drivers\etc\ %sFolderName%a1_Backup\CONFIG\%date%\ hosts >> %sFolderName%a1_Backup\CONFIG\%date%\hosts.log

::
echo ###################################################### > %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\SAM >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ SAM >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo ###################################################### >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\DEFAULT >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ DEFAULT >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo ###################################################### >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\SECURITY >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ SECURITY >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo ###################################################### >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\software >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ software >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo ###################################################### >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\system >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ system >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo ###################################################### >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\COMPONENTS >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ COMPONENTS >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo ###################################################### >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
echo the path to the file %windir%\system32\config\netlogon.ftl >> %sFolderName%a1_Backup\CONFIG\%date%\config.log
hobocopy /y %windir%\system32\config\ %sFolderName%a1_Backup\CONFIG\%date%\ netlogon.ftl >> %sFolderName%a1_Backup\CONFIG\%date%\config.log

echo the path to the file %userprofile%\NTUSER.DAT > %sFolderName%a1_Backup\NTUSER\%date%\NTUSER.log
hobocopy /y %userprofile%\ %sFolderName%a1_Backup\NTUSER\%date%\ NTUSER.DAT >> %sFolderName%a1_Backup\NTUSER\%date%\NTUSER.log

TIMEOUT 1
attrib +r +h %sFolderName%a1_Backup
msg * Completed!!! Reserved to %sFolderName%a1_Backup\
TIMEOUT 1
start %sFolderName%a1_Backup\

) else (
echo Папка не была выбрана.
)

-------
Сложность программы растет до тех пор, пока не превысит способности программиста.


Отправлено: 13:16, 29-12-2018

 

Аватара для YuS_2

Crazy


Contributor


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

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


Код: Выделить весь код
>nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86
echo %xOS%

-------
scio me nihil scire. Ѫ

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

Отправлено: 13:54, 29-12-2018 | #2



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

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


Ветеран


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

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


Хмм… Интересный способ.

Отправлено: 16:30, 29-12-2018 | #3


Аватара для O L E G

Старожил


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

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


Странно, запустил скрипт показывает х86, а у меня х64
Нашел чуть другой вариант, рабочий из темы http://forum.oszone.net
Скрытый текст

Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64
Echo OS - %xOS%
::
@Echo Off
:: Варианит 1
Set xOS=x64
If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86
Echo %xOS%
Pause

:: ===================================================================================
:: Варианит 2
Set xOS=x86
If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64
Echo %xOS%
Pause

:: ===================================================================================
:: Запуск приложений в зависимости от разрядности из разных папок с именами x64 и x86
Set xOS=x64
If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86
"c:\My Test\%xOS%\install.exe" /S

:: ===================================================================================
:: Запуск приложений в зависимости от разрядности из одной папки с именами сожержащими суффикс x64 и x86 (install_x64.exe и install_x86.exe)
Set xOS=x64
If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86
"c:\My Test\install_%xOS%.exe" /S

:: ===================================================================================
:: Запуск приложений в зависимости от разрядности из разных папок, с разными именами и/или ключами
Set xOS=x64
If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86
If %xOS%==x86 ("c:\My Test\i86\install.exe" /S) Else ("c:\My Test\AMD64\setup.msi" /qn)

-------
Сложность программы растет до тех пор, пока не превысит способности программиста.


Последний раз редактировалось O L E G, 29-12-2018 в 22:25.


Отправлено: 22:17, 29-12-2018 | #4


Ветеран


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

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


Цитата O L E G:
Странно, запустил скрипт показывает х86, а у меня х64 »
Покажите, как и чем запускаете.

Отправлено: 22:26, 29-12-2018 | #5


Аватара для O L E G

Старожил


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

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


-------
Сложность программы растет до тех пор, пока не превысит способности программиста.


Отправлено: 22:32, 29-12-2018 | #6


Ветеран


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

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


O L E G, содержимое Вашего сообщения недоступно ни напрямую, ни через прокси.

Отправлено: 23:22, 29-12-2018 | #7


Аватара для O L E G

Старожил


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

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


Iska, прошу прощения, запускал через cmd файл.
Система х64, а при запуске
Скрытый текст
nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86
echo %xOS%
пишет х86, с другими скриптами указанными выше, проблем таких нет

-------
Сложность программы растет до тех пор, пока не превысит способности программиста.


Отправлено: 17:30, 30-12-2018 | #8


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата O L E G:
Система х64 »
Какая именно?

А что выдает такая команда в консоли:
Код: Выделить весь код
set ProgramFiles(x86)
?

Цитата O L E G:
nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86 »
и кстати, при копировании строки с командами, копировать её надо полностью...

-------
scio me nihil scire. Ѫ


Отправлено: 17:40, 30-12-2018 | #9


Ветеран


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

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


Цитата O L E G:
запускал через cmd файл. »
Как, через что, откуда запускали пакетный файл?

Вот пакетный файл, запущенный из-под x64-версии интерпретатора команд (%SystemRoot%\System32\cmd.exe):
Скрытый текст

Вот пакетный файл, запущенный из-под x86-версии интерпретатора команд (%SystemRoot%\SysWOW64\cmd.exe):
Скрытый текст

Отправлено: 17:48, 30-12-2018 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - [решено] Не запускаются 32-битные *.exe на 64-битной Windows 7 Максимальная Koss666 Microsoft Windows 7 51 22-09-2015 18:18
Разное - Востановление поврежденной WinXP 32, если рядом уже установленна Win7 64 erikra Microsoft Windows 2000/XP 14 16-12-2013 10:52
Установка - что делать если при переустановке Windows 7 с 64-bit ого на 32-bit Гебриэл Microsoft Windows 7 13 11-07-2013 21:57
лечение системы wwwznv32.exe и monoco...32.exe gikon Лечение систем от вредоносных программ 6 29-07-2010 19:03
Плюсы и минусы разрядности систем 32-х и\или 64-х RasKolbas Хочу все знать 7 20-04-2010 07:19




 
Переход