수년 동안 나는 cmd/DOS/Windows
셸 을 사용하고 명령 줄 인수를 배치 파일에 전달했습니다. 예를 들어, 내가 파일을 가지고 zuzu.bat
있으며, 나는 액세스 %1
, %2
등 지금, 나는 내가 호출 할 때 동일한 작업을 수행 할 PowerShell
스크립트를 when I am in a Cmd.exe shell
. 스크립트가 있습니다 xuxu.ps1
(그리고 PS1을 PATHEXT 변수에 추가하고 PS1 파일을 PowerShell과 연결했습니다). 그러나 내가 무엇을하든 $args
변수 에서 아무것도 얻을 수없는 것 같습니다 . 항상 길이가 0입니다.
나는에서 오전하면 PowerShell
쉘, 대신 cmd.exe
, 그것은 (물론) 작동합니다. 그러나 저는 아직 PowerShell 환경에서 풀 타임으로 살기에 충분히 편하지 않습니다. 를 입력하고 싶지 않습니다 powershell.exe -command xuxu.ps1 p1 p2 p3 p4
. 를 입력하고 싶습니다 xuxu p1 p2 p3 p4
.
이것이 가능합니까? 그렇다면 어떻게합니까?
작업 할 수없는 샘플은 foo.ps1입니다.
Write-Host "Num Args:" $args.Length;
foreach ($arg in $args) {
Write-Host "Arg: $arg";
}
결과는 항상 다음과 같습니다.
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
xuxu p1 p2 p3 p4
").