我基本上想通过通配符 *.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
)
答案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!
)