2009-03-06 39 views
4

.infファイルを右クリックすると、「インストール」オプションが表示されます。私はバッチファイルを使用してコマンドラインから.infファイルをインストールしたい。これを行う「正しい」方法は何ですか?Windowsバッチファイルを使用して.infファイルをインストールする

ありがとうございます!

[編集] 私はWindows XP(Vistaではなく)でこれを実行しようとしていることを明確にする必要があります。私はInfDefaultInstall.exeに言及して以下の答えを申し立てます(そして投票しました)が、私はプログラムがXPに同梱されていないと信じています。

+0

私はXP上で注記を追加しました。しかし、Windowsが実行するコマンドを探す場所はそれ以来変更されていません:) – Joey

答えて

7

HKCR\inffile\shell\Install\commandレジストリキーを参照すると、コマンドが見つかります。 Windows XPでは、これはWindows Vistaで

%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1

で、後でこれはあなたには、いくつかの策略を必要とするいくつかのWindowsのバージョン間でバッチファイルを使用するには

%SystemRoot%\System32\InfDefaultInstall.exe "%1"

だろう。 reg.exeを使用してキーを照会し、出力を解析してみることができます(私はregから値を取得する簡単な方法が見つかりませんでした)。実行しているプラ​​ットフォームが分かっていれば、コマンドラインをハードコードし、Windowsのバージョンに応じて切り替えることもできます(これを見つけるためにもう1つのハックが必要です)。%OS%は "Windows NT"残念ながら。)。

+0

これはWindows 7にも適用されますか? – Dogmatixed

+1

'Get-ItemProperty HKLM:\ SOFTWARE \ Classes \ inffile \ shell \ Install \ command'はyesを示します。 – Joey

2
rem tested/works 

:inf 
ver | findstr /il "Version 6." > nul 
if %ERRORLEVEL%==0 goto :vista 

:xp 
start/wait rundll32.exe setupapi,InstallHinfSection DefaultInstall 4 %_% 
goto :eof 
:vista 
%SystemRoot%\System32\InfDefaultInstall.exe "%_%" 

:eof 
1

万一はIE 4.0以上を持っているすべてのWindowsシステム上で動作します:

RunDll32 advpack.dll,LaunchINFSection <file.inf>,DefaultInstall 
関連する問題