Помогите написать .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!