Unix 구문과 동일한 기능을 수행하려면 환경 변수를 설정해야 할뿐만 아니라 명령을 실행 한 후 이전 값으로 재설정해야합니다. PowerShell 프로필에 다음과 유사한 기능을 추가하여 사용하는 일반적인 명령에 대해이 작업을 수행했습니다.
function cmd_special()
{
$orig_master = $env:app_master
$env:app_master = 'http://host.example.com'
mycmd $args
$env:app_master = $orig_master
}
따라서 mycmd
환경 변수의 값에 따라 다르게 작동하는 일부 실행 파일도 있습니다 app_master
. 을 정의함으로써 cmd_special
이제 환경 변수가 설정된 cmd_special
명령 줄 (다른 매개 변수 포함)에서 실행할 수 있으며 명령 app_master
실행 후 재설정 (또는 설정 해제)됩니다.
아마도 단일 호출에 대해이 임시 작업을 수행 할 수도 있습니다.
& { $orig_master = $env:appmaster; $env:app_master = 'http://host.example.com'; mycmd $args; $env:app_master = $orig_master }
이보다 더 쉬울 수 있지만 분명히 PowerShell에서 쉽게 지원되는 사용 사례는 아닙니다. 향후 버전 (또는 타사 기능)이이 사용 사례를 용이하게 할 것입니다. PowerShell에이를 수행하는 cmdlet이 있으면 좋을 것입니다. 예 :
with-env app_master='http://host.example.com' mycmd
아마도 PowerShell 전문가는 그러한 cmdlet을 작성하는 방법을 제안 할 수 있습니다.