4

我正在尝试创建一个批处理文件,该文件将在这种情况下发现一个 EXE 的位置 Steam,并使用从注册表中发现的路径运行该 EXE。我想通过注册表发现安装路径的原因是因为这个批处理文件要在多台机器上运行,并且 Steam 安装路径可能不同。

注册表是保存这些路径的常量。现在我相信 Steam 将其安装路径存储在:

"HKEY_CURRENT_USER\Software\Valve\Steam\"
SteamExe = X:\Path\Steam.exe

所以首先我需要知道如何获取该值,然后我想知道如何获取该值并将其输入到运行命令中以便 Steam 运行。

你能帮忙吗?

4

2 回答 2

4
@echo off

for /f "tokens=1,3" %%E in ('reg query "HKEY_CURRENT_USER\Software\Valve\Steam"') do (
    if %%E==SteamExe echo "%%F"
)

pause

reg query获取注册表路径的所有键和值。

for /f访问查询的注册表数据的每一行并拆分数据,以便“名称”存储在“E”中,“数据”存储在“F”中。如果“E”等于“SteamExe”,则回显“F”,这将显示 Steam 可执行文件路径。

命令行版本:

@for /f "tokens=1,3" %E in ('reg query "HKEY_CURRENT_USER\Software\Valve\Steam"') do @if %E==SteamExe @echo "%F"
于 2012-08-22T10:50:17.187 回答
1

我采用了另一种方式,这将起作用。

setlocal

regedit /e reg_exported.tmp "HKEY_CURRENT_USER\Software\Valve\Steam"
find "SteamExe" reg_exported.tmp | findstr "SteamExe" >> line_exported.tmp
set /p SteamPath= < line_exported.tmp
set SteamPath=%SteamPath:~11%

del reg_exported.tmp
del line_exported.tmp

start "Steam" %SteamPath%

endlocal
于 2012-08-23T01:13:13.893 回答