すべてのWindowsプラットフォーム(win7、win8、win10、Windows Server 2008、Windows Server 2016など)でRegAsm.exeを見つける方法

B. Geronatsios

RegAsm.exe特に存在するかどうかを検索したいので.net 4 framework、次のパスで検索します。

%windir%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe
  1. このパスは、すべてのウィンドウ(Windows 7、8、8.1、および10)
    およびサーバーバージョン2008、2016などで正しいですか?

  2. 使用する方が良い%SystemRoot%ですか、それとも同じですか?

  3. x64パスを探す必要がありますか?

コンポ

私の知る限り、パスは固定されています。私は他の場所でそれを見たことがなく、エンドユーザーがその場所を変更/選択する機会を与えられているかどうかはわかりません。

ただし、ファイルシステムを検索するすでに提供されている回答に加えて、レジストリを確認し、それに応じて変数を設定することもできます。

@For /F Tokens^=2* %%G In ('""%__APPDIR__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData" /S /F "RegAsm.exe" /D 2>NUL|"%__APPDIR__%find.exe" "\v4.""')Do @Echo("%%H"|"%__APPDIR__%find.exe" "4\">NUL&&(Set "RegAsm64=%%H")||Set "RegAsm32=%%H"

何が定義されているかを確認したい場合は@Set RegAsm、次の行に追加できます次に、適切なバージョンを使用するには、"%RegAsm64%"または"%RegAsm32%"必要に応じて使用します。また、コマンドの@For /F Delims^== %%G In ('Set RegAsm 2^>NUL')Do @Set "%%G="前に。を付けることをお勧めします。これにより、開始する前に既存の変数が定義されていないことが確認されます。これにより、結果が異なる可能性があります。

例:

@For /F Delims^== %%G In ('Set RegAsm 2^>NUL')Do @Set "%%G="
@For /F Tokens^=2* %%G In ('""%__APPDIR__%reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData" /S /F "RegAsm.exe" /D 2>NUL|"%__APPDIR__%find.exe" "\v4.""')Do @Echo("%%H"|"%__APPDIR__%find.exe" "4\">NUL&&(Set "RegAsm64=%%H")||Set "RegAsm32=%%H"
@Set RegAsm
@Pause

コマンドプロンプトから直接スクリプトを実行していない場合でも、出力を読み取る機会を提供するために、最後の行を追加しました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ