

UNIX の env コマンドのように環境変数を設定してプロセスを起動したいのですが、Windows PowerShell
でこのようなことを実現するにはどうすればよいでしょうか？

`Set-Item`
コマンドを使えば環境変数を書き換えられるのはわかったんですが、これだとシェルそのものの環境が書き換わってしまうので、あとで元に戻す必要があって少し面倒です。

### 追記

具体的には、特定の環境変数をセットした状態でユニットテストを起動したいと思っています。UNIX のシェルであれば、次のように書けます：  
`  
$ env NODE_ENV=test npm test  
`  
（この場合必ずしも env は必要ないですが。）


CC BY-SA 3.0
2015-04-09T08:11:36.583
8947
2015-07-09T10:29:42.113
2015-04-10T05:46:50.660
73
73
question
windows powershell
Windows PowerShell で /usr/bin/env のような環境変数付きのプロセス起動をするには？


PowerShellには環境変数を表す（仮想）ドライブEnvironmentプロバイダがあって、  
`$env:name="BLUE"`  
のようにして、環境変数を設定できます。(`env:`がドライブ名で`$`は変数を表す、`name`は環境変数名）  
コマンドレットからは`$env:name` か `env:name`で参照できます。`$`が必要とされるかどうかはコマンドレットで異なります。  
バッチにおける環境変数と同じでシェルの終了時には無効になります（起動プロセスで有効）


CC BY-SA 3.0
2015-04-09T09:43:55.690
8951
2015-04-09T09:43:55.690
5044
8947
answer