Logo Hardware.com.br
davipsferreira
davipsferrei... Novo Membro Registrado
2 Mensagens 0 Curtidas

Batch (.bat) Criar comando que leia a versão do windows (32 ou 64bits) e copiar arquivos .

#1 Por davipsferrei... 21/08/2015 - 14:41
Saudações pessoal.

Preciso automatizar a atualização de um programa para vários usuários em rede. Como tenho usuários com diferente versões do windows (32 ou 64 bits), pensei escrever o codigo em .bat para enviar para o usuario executar (sem interação) .

A idéia do codigo em .BAT é:

- criar uma %variavel% ;
- com o comando "wmic os get osarchitecture" que ler a informação (que conheço) , ele armazenaria o resultado na %variavel% ;
- com a mesma ideia do IF ELSE , ele iria lê o retorno do comando "wmic os get osarchitecture" que seria: OSArchitecture 64-bit ou 32-bit;
- Se o valor (cadeia de caracteres) for igual OSArchitecture 64-bit entao ele copia o arquivo armazenado na pasta teste64, se for OSArchitecture 32-bit, ele copiará da pasta teste32.

@echo off
cls
set x=%x%; wmic os get osarchitecture
if %x% equ "OSArchitecture 64-bit" (xcopy /e /f /y \\192.168.xx.xx\pasta64)
else xxxx
pause>nul
exit

Desde já agradeço.
Shura16
Shura16 Ubbergeek Registrado
2.5K Mensagens 601 Curtidas
#2 Por Shura16
21/08/2015 - 16:53
Seja bem vindo ao fórum.
Para melhor visualizar o seu código, clica no botão de + e depois e código.

Não entendi a linha:
[code=Winbatch]set x = %x%; wmic os get osarchitecture[/code]
Neste ponto %x% está vazio ainda e não pega a saída do comando.

Não seria assim?
[code=Winbatch]
for /f %%i in ('wmic os get osarchitecture') do set x=%%i
[/code]
Coragem não é ausência de medo e sim o controle dele.

Linux em casa!
Windows 10, na empresa!
Agora: Android no bolso!
davipsferreira
davipsferrei... Novo Membro Registrado
2 Mensagens 0 Curtidas
#3 Por davipsferrei...
21/08/2015 - 17:19
Shura16 disse:
Seja bem vindo ao fórum.
Para melhor visualizar o seu código, clica no botão de + e depois e código.

Não entendi a linha:
[code=Winbatch]set x = %x%; wmic os get osarchitecture[/code]
Neste ponto %x% está vazio ainda e não pega a saída do comando.

Não seria assim?
[code=Winbatch]
for /f %%i in ('wmic os get osarchitecture') do set x=%%i
[/code]



Olá! Obrigado pela resposta.

Entao, a linha "set x = " seria para definir a variavel de nome X, e em seguida, executar o comando wmic os get osarchitecture.

Como sou principiante, nao sei como posso aplicar. Como devo aplicar?

@echo off
cls
echo Atualizando sistema
for /f %%i in ('wmic os get osarchitecture') do set x=%%i
if %x% equ "OSArchitecture 64-bit" "xcopy /e /F /y "\\192.168.1.118\update\win32" "c:\"
pause
exit
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal