1
bar.cmd
という名前のバッチファイルがあります。行はECHO %Foo%
です。
PowershellスクリプトでFoo
を設定すると、& .\bar.cmd
を呼び出すと、Bar
が印刷されるようになりますか?Powershellのバッチファイルの変数を設定する
bar.cmd
という名前のバッチファイルがあります。行はECHO %Foo%
です。
PowershellスクリプトでFoo
を設定すると、& .\bar.cmd
を呼び出すと、Bar
が印刷されるようになりますか?Powershellのバッチファイルの変数を設定する
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
}
}
それとも、 '$のENV::fooは= "バー"'記事はあなたのためにこれを行うことができ、短いPowerShellの機能を提供します。 – rojo
@rojo:...それははるかに明確です! ** '))** ** – Aacini
はい、そうです。それを答えに加えました。 –