"& foi inesperado neste momento" erro
Existem dois erros no seu arquivo de lote.
Erro 1:
for /f "skip=1 tokens=4" %%B in ('wmic product where "name like 'Microsoft .NET%'" get name') do set "DNVER=%%B"
O comando acima precisa ter o único %
após NET
com escape. Use %%
em vez disso:
for /f "skip=1 tokens=4" %%B in ('wmic product where "name like 'Microsoft .NET%%'" get name') do set "DNVER=%%B"
Erro 2:
for /f "tokens=3" %%C in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v svcVersion' do set "IEFULLVER=%%C"
O comando acima está sem um )
antes de do
. Deve ser:
for /f "tokens=3" %%C in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v svcVersion') do set "IEFULLVER=%%C"
Arquivo em lote de trabalho (test.cmd):
@echo off
setlocal EnableDelayedExpansion
for /f %%A in ('wmic os get osarchitecture ^| find /i "bit"') do set "OSARCH=%%A"
for /f "skip=1 tokens=4" %%B in ('wmic product where "name like 'Microsoft .NET%%'" get name') do set "DNVER=%%B"
for /f "tokens=3" %%C in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v svcVersion') do set "IEFULLVER=%%C"
echo %OSARCH%
echo %DNVER%
echo %IEFULLVER%
endlocal
Exemplo de saída:
F:\test>test
64-bit
4.5.2
11.0.9600.17691
Escape de porcentagens
The
%
character has a special meaning for command line parameters and FOR parameters.To treat a percent as a regular character, double it:
%%
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- sintaxe - Escape Characters, Delimiters e Quotes.
- wmic - Comando de instrumentação de gerenciamento do Windows.