批量检查 *.reg 但仅当 = 1 个文件时才进行

批量检查 *.reg 但仅当 = 1 个文件时才进行

我基本上想通过通配符 *.reg 检查是否存在批处理文件,但如果有超过 1 个 .reg 文件,我会让它出错。

这是我一直尝试使用的代码,但我的批次相当基础。

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

可以肯定我的逻辑完全错了!但我把它放在这里,这样你就能大致了解我想做什么。

谢谢!

答案1

从批处理脚本:

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
)

阅读更多Windows CMD 命令行的 AZ 索引

答案2

如果您不想创建额外的变量,这里有一个更简单的方法:

@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!
)

相关内容