Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Определение разрядности OS, если 32, выполнять 32.exe, если 62, то выполнить 64.exe (http://forum.oszone.net/showthread.php?t=338492)

O L E G 29-12-2018 13:16 2848954

Определение разрядности OS, если 32, выполнять 32.exe, если 62, то выполнить 64.exe
 
Доброго времени суток,
Подскажите по скрипту, нужно добавить скрипт в программу, т.е запускаю программу она определяет что Винда 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 Папка не была выбрана.
)


YuS_2 29-12-2018 13:54 2848960

Код:

>nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86
echo %xOS%


Iska 29-12-2018 16:30 2848980

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

O L E G 29-12-2018 22:17 2849013

Странно, запустил скрипт показывает х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)

Iska 29-12-2018 22:26 2849016

Цитата:

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

Покажите, как и чем запускаете.

O L E G 29-12-2018 22:32 2849018


Iska 29-12-2018 23:22 2849028

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

O L E G 30-12-2018 17:30 2849156

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

YuS_2 30-12-2018 17:40 2849160

Цитата:

Цитата O L E G
Система х64 »

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

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

set ProgramFiles(x86)
?

Цитата:

Цитата O L E G
nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86 »

и кстати, при копировании строки с командами, копировать её надо полностью... :)

Iska 30-12-2018 17:48 2849162

Цитата:

Цитата O L E G
запускал через cmd файл. »

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

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

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

YuS_2 30-12-2018 18:44 2849171

Цитата:

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

это даже неважно, в данном случае, ибо там просто не хватает символа перенаправления потока вывода на устройство nul...

Iska 30-12-2018 19:12 2849177

Цитата:

Цитата YuS_2
ибо там просто не хватает символа перенаправления потока вывода на устройство nul... »

В этом случае я лично получаю банальное предупреждение:
Скрытый текст
и отлуп:
Скрытый текст

YuS_2 30-12-2018 19:20 2849179

Цитата:

Цитата Iska
получаю банальное предупреждение »

А у меня, легко повторяется в точности то, что на скриншоте здесь

Iska 30-12-2018 19:49 2849183

А что там? Я его не вижу.

YuS_2 31-12-2018 04:43 2849230

Цитата:

Цитата Iska
А что там? »


Iska 31-12-2018 10:51 2849252

YuS_2, спасибо, ясно. RGhost по нашей местности тож заблокирован доблестным РосКомНадзором, но Ваш скриншот я хотя бы через штатовский прокси увидел.

Вот у меня на Windows 7 SP1 x64 сначала идёт вышеуказанное предупреждение в GUI, и токмо затем вышеуказанный отлуп в CUI. Ну, и, само собой, показанное на скриншотах, Вашем и, возможно, коллеги O L E G, совсем не означает того, что он написал выше:
Цитата:

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

Цитата:

Цитата O L E G
Система х64, а при запуске … пишет х86, »

поскольку пакетный файл «показывает/пишет» — в первую очередь — совсем другое. Ну, и Вы указали, по какой именно причине сие происходит.

Надеюсь, теперь все разобрались :).

Busla 31-12-2018 11:25 2849256

O L E G, а чем вас не устраивает 32-разрядный hobocopy в 64-разрядной среде?

Цитата:

Цитата O L E G
Странно, запустил скрипт показывает х86, а у меня х64
Нашел чуть другой вариант, рабочий из темы »

Разрядность ОС и разрядность среды, в которой вы запустили скрипт - не одно и то же

и в целом для вашего велосипеда с квадратными колёсами hobocopy не нужен и даже скорее противопоказан: vss придуман для получения консистентных данных, а не чтобы по-отдельности файлики вычитывать. И это делается штатными средствами, без сторонних костылей.

Рано вам ещё для других людей бэкапилки писать.

DJ Mogarych 05-01-2019 20:24 2850037

Цитата:

Цитата O L E G
пишет х86, с другими скриптами указанными выше, проблем таких нет »

С админскими правами надо запускать.

Код:

if /I "%Processor_Architecture%"=="x86" (
hobocopy32.exe
)
 
if /I "%Processor_Architecture%"=="AMD64" (
hobocopy64.exe
)



Время: 19:49.

Время: 19:49.
© OSzone.net 2001-