4

この場合、Steam で EXE の場所を検出し、レジストリから検出されたパスを使用してその 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 に答える