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

Аватара пользователя
O L E G

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

Сообщение O L E G »

Доброго времени суток,

Подскажите по скрипту, нужно добавить скрипт в программу, т.е запускаю программу она определяет что Винда 64x и выполняет файл 64 разрядности, если 32х то 32 битный.

Так как буду использовать 2ва файла, один 64 другой 32, hobocopy32.exe - hobocopy64.exe

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

Сам код



Скрытый текст

[spoiler]@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 Папка не была выбрана.

)[/spoiler]
Аватара пользователя
Iska

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

Сообщение Iska »

Странно, запустил скрипт показывает х86, а у меня х64

Нашел чуть другой вариант, рабочий из темы
[решено] Автоматическое определение типа ОС - 32 или 64 бит.




Скрытый текст

[spoiler]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)[/spoiler]
Аватара пользователя
Iska

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

Сообщение Iska »

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

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

Сообщение O L E G »

Цитата O L E G:



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




Какая именно?



А что выдает такая команда в консоли:



Код:

Код: Выделить всё

set ProgramFiles(x86)

?




Цитата O L E G:



nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86
CMD/BAT - [решено] Определение разрядности OS, если 32, выполнять 32.exe, если 62, то выполнить 64.exe




и кстати, при копировании строки с командами, копировать её надо полностью... Изображение
Аватара пользователя
YuS_2

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

Сообщение YuS_2 »

Цитата O L E G:



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




Как, через что, откуда запускали пакетный файл?



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



Скрытый текст

[spoiler]Изображение[/spoiler]




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



Скрытый текст

[spoiler]Изображение[/spoiler]
Ответить

Вернуться в «Скриптовые языки администрирования Windows»