Verificação em lote para * .reg, mas somente se = 1 arquivo

0

Eu estou olhando basicamente para verificar se um arquivo de lote está presente por curinga * .reg, mas eu gostaria de erro se houver mais de 1 arquivo .reg.

Este é o código que estou tentando usar, mas meu lote é bem básico.

if "%%i" GTR 1 in (*.reg) == goto Error2
else do (regedit /s %%i)

Tenho certeza que tenho a lógica completamente para trás! Mas eu coloquei aqui para você ter uma idéia do que estou tentando fazer.

Obrigado!

    
por Ctrlaltdenied 15.06.2015 / 14:35

2 respostas

1

De um script em lote:

set "counter=0"
set "file="
for %%i in (*.reg) do (
    set /A "counter+=1"
    set "file=%%~i"
) 
if %counter% EQU 1 (
    regedit /s "%file%"
) else (
    goto :error
)

Leia mais em Um índice A-Z da linha de comando do Windows CMD

    
por 15.06.2015 / 14:42
0

Se você não quiser criar variáveis extras, aqui está um método mais simples:

@echo off
for /f %%c in ('dir /b *.reg 2^>NUL ^| find /c ".reg"') do if [%%c]==[1] (
    for %%f in (*.reg) do regedit /s "%%f"
) else (
    echo Error!
)
    
por 19.06.2015 / 18:08