対象ディレクトリの中に置いて実行するだけです。 このスクリプトは、スクリプトのあるディレクトリを登録するので、 インストールしたいアプリケーションと共に保存しておけば 呼び出すだけで目的が達成されますブラウザでダウンロード
' ********************************************************** ' ■ スクリプトが存在するディレクトリを ' ユーザ環境変数の PATH へ登録します ' ' ■ もし、システム環境変数に既に同じパスがあれば ' 登録しません ' ' ■ 登録位置は、一番最後です ' ********************************************************** strTitle = "スクリプトが存在するディレクトリをユーザPATH環境変数に登録" ' ********************************************************** ' PC 名と ユーザ名を取得 ' ********************************************************** Set WshNetwork = CreateObject( "WScript.Network" ) strUser = WshNetwork.UserName strMachine = WshNetwork.ComputerName ' ********************************************************** ' スクリプトが存在するディレクトリを取得 ' ********************************************************** Set Fso = CreateObject( "Scripting.FileSystemObject" ) strScriptPath = WScript.ScriptFullName Set obj = Fso.GetFile( strScriptPath ) Set obj = obj.ParentFolder strScriptPath = obj.Path ' strScriptPath に 使用するディレクトリがセットされています ' ********************************************************** ' システム環境変数のチェック ' ********************************************************** strValue = "" strComputer = "." Set obj = GetObject("winmgmts:\\.\root\cimv2") Set objItems = obj.ExecQuery _ ("select * from Win32_Environment where SystemVariable = True and Name = 'PATH'") For Each objItem in objItems strValue = objItem.VariableValue Next if strValue <> "" then aData = Split( strValue, ";" ) For I = 0 to Ubound( aData ) if UCase(aData(I)) = UCase(strScriptPath) then Call Msgbox( "システム環境変数に既に登録されています", 0, strTitle ) Wscript.Quit end if Next end if ' ********************************************************** ' ユーザ環境変数のチェック ' ********************************************************** strValue = "" strComputer = "." Set obj = GetObject("winmgmts:\\.\root\cimv2") Set objItems = obj.ExecQuery _ ("select * from Win32_Environment where SystemVariable = False and Name = 'PATH'") For Each objItem in objItems if Ucase( objItem.UserName ) = Ucase(strMachine & "\" & strUser) then strValue = objItem.VariableValue end if Next if strValue <> "" then aData = Split( strValue, ";" ) For I = 0 to Ubound( aData ) if UCase(aData(I)) = UCase(strScriptPath) then Call Msgbox( "ユーザ環境変数に既に登録されています", 0, strTitle ) Wscript.Quit end if Next end if ' ********************************************************** ' ユーザ環境変数を登録 ' ********************************************************** strValue = strValue & ";" & strScriptPath Set objEnv = obj.Get("Win32_Environment").SpawnInstance_ objEnv.Name = "PATH" objEnv.UserName = strMachine & "\" & strUser objEnv.VariableValue = strValue objEnv.Put_
以下は、削除用です システムとログインしているユーザをチェックして、両方にあれば 両方とも削除します。
ブラウザでダウンロード
■ 関連するページ 環境変数作成 Hey, Scripting Guy! : Path 環境変数に場所を追加する方法はありますか Hey, Scripting Guy! : Path 環境変数から値を削除する方法はありますか wmiquery PATH 環境変数メンテナンス : Redmond Path
|