2017-03-01 14 views

答えて

3

PowerShellで環境変数を設定するには:あなたはそれを他の方法で回避をしたい場合は、

Set-Item Env:foo "bar" 

または

$env:foo = "bar" 

を、この記事をお読みください。

http://windowsitpro.com/powershell/take-charge-environment-variables-powershell

cmd.exeを実行してシェルスクリプトを実行するとt(.batまたは.cmdファイル)の場合、変数は実行中のインスタンスcmd.exeに設定されますが、cmd.exeインスタンスが終了すると失われます。

回避方法:シェルスクリプトcmd.exeを実行し、設定した環境変数を出力してから、現在のPowerShellセッションでこれらの変数を設定します。

# Invokes a Cmd.exe shell script and updates the environment. 
function Invoke-CmdScript { 
    param(
    [String] $scriptName 
) 
    $cmdLine = """$scriptName"" $args & set" 
    & $Env:SystemRoot\system32\cmd.exe /c $cmdLine | 
    Select-String '^([^=]*)=(.*)$' | ForEach-Object { 
     $varName = $_.Matches[0].Groups[1].Value 
     $varValue = $_.Matches[0].Groups[2].Value 
     Set-Item Env:$varName $varValue 
    } 
} 
+2

それとも、 '$のENV::fooは= "バー"'記事はあなたのためにこれを行うことができ、短いPowerShellの機能を提供します。 – rojo

+0

@rojo:...それははるかに明確です! ** '))** ** – Aacini

+0

はい、そうです。それを答えに加えました。 –

関連する問題