対象ディレクトリの中に置いて実行するだけです。 このスクリプトは、スクリプトのあるディレクトリを登録するので、 インストールしたいアプリケーションと共に保存しておけば 呼び出すだけで目的が達成されますブラウザでダウンロード
' **********************************************************
' ■ スクリプトが存在するディレクトリを
' ユーザ環境変数の 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
|
|



