Помогите написать .bat для передачи файлов

прошу помощи в написании .bat

есть 2 реестра 32 и 86 бит они находятся на сервере надо запустить .bat файл и чтобы дальше произошло действие : определяется разрядность и по этой разрядности выбирается с сервера файлы реестра и запускаются на ПК сотрудника.

пробовал, но файл реестра выдает ошибку


Ответы (1 шт):

Автор решения: Eugene X

Через WMIC делаешь запрос на архетектуру, сохраняешь в переменную, после через if производишь действия.

wmic os get osarchitecture

Сохранение переменной из STDOUT делается через for.

Примерно так:

for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set MyDate=%%x

Единственный вопрос, почему именно bat? В винде навалом крутых вариантов начиная от PowerShell заканчивая WSH, которые гораздо удобнее для скриптинга.

Дополнено спустя, из комментариев.

@ECHO OFF
REM Пропустить первую строку, а вторую записать в %OSARCH%
FOR /F "skip=1" %%X IN ('wmic os get osarchitecture') DO IF NOT DEFINED OSARCH SET OSARCH=%%X
REM Тут %OSARCH% равна например '64-разрядная', выбераем первых 2 символа, и сравниваем
IF %OSARCH:~0,2% == 64 GOTO LABEL_64BIT
IF %OSARCH:~0,2% == 32 GOTO LABEL_32BIT
GOTO LABEL_EXIT

REM Для 32х битной Windows
:LABEL_32BIT
ECHO 32 bit commands
GOTO LABEL_EXIT

REM Для 64 битной Windows
:LABEL_64BIT
ECHO 64 bit commands
GOTO LABEL_EXIT

:LABEL_EXIT
SET OSARCH=
ECHO Bye!
→ Ссылка