간단한 설명
pwsh 명령-line 인터페이스를 사용하는 방법을 설명합니다. 매개 변수를-l명령을 표시하고 구문을 설명합니다.
긴 설명
Windows PowerShell 5.1에 대한 명령-line 옵션에 대한 자세한 내용은 about_PowerShell_exe참조하세요.
Syntax
Usage: pwsh[.exe]
[-Login]
[[-File] <filePath> [args]]
[-Command { - | <script-block> [-args <arg-array>]
| <string> [<CommandParameters>] } ]
[[-CommandWithArgs <string>] [<CommandParameters>]]
[-ConfigurationFile <filePath>]
[-ConfigurationName <string>]
[-CustomPipeName <string>]
[-EncodedCommand <Base64EncodedCommand>]
[-ExecutionPolicy <ExecutionPolicy>]
[-InputFormat {Text | XML}]
[-Interactive]
[-MTA]
[-NoExit]
[-NoLogo]
[-NonInteractive]
[-NoProfile]
[-NoProfileLoadTime]
[-OutputFormat {Text | XML}]
[-SettingsFile <filePath>]
[-SSHServerMode]
[-STA]
[-Version]
[-WindowStyle <style>]
[-WorkingDirectory <directoryPath>]
pwsh[.exe] -h | -Help | -? | /?
매개 변수
모든 매개 변수는 대/소문자를 구분하지-i.
-File | -f
파일 값은 - 파일 경로 및 선택적 매개 변수일 수 있습니다.
파일 값이 -경우 표준 입력에서 명령을 읽습니다.
매개 변수가 없지만 명령줄에 값이 있는 경우 기본 매개 변수입니다. 지정된 스크립트는 새 세션의 로컬 범위("dot-sourced")에서 실행되므로 스크립트가 만드는 함수와 변수를 새 세션에서 사용할 수 있습니다. 스크립트 파일 경로 및 매개 변수를 입력합니다. 파일 매개 변수 이름 뒤에 입력된 모든 문자는 스크립트 파일 경로와 스크립트 매개 변수로 해석되므로 파일은 명령의 마지막 매개 변수여야 합니다.
일반적으로 스크립트의 스위치 매개 변수는 포함되거나 생략됩니다.
예를 들어 다음 명령은 스크립트 파일의 Get-Script.ps1 매개 변수를 사용합니다. -File .\Get-Script.ps1 -All
드문 경우에서 스위치 매개 변수에 부울 값을 제공해야 할 수 있습니다.
File 매개 변수 값에서 스위치 매개 변수에 대한 부울 값을 제공하려면 일반적으로 콜론 바로 뒤에 있는 매개 변수와 부울 값(예: -File .\Get-Script.ps1 -All:$false)을 사용합니다.
스크립트에 전달된 매개 변수는 현재 셸에서 해석한 후 리터럴 문자열로 전달됩니다. 예를 들어 cmd.exe 환경 변수 값을 전달하려는 경우 cmd.exe 구문을 사용합니다. pwsh -File .\test.ps1 -TestParam %windir%
반면, pwsh -File .\test.ps1 -TestParam $Env:windircmd.exe 실행하면 현재 $Env:windir 셸에 특별한 의미가 없으므로 스크립트에서 리터럴 문자열 cmd.exe 수신됩니다. 환경 변수 참조 $Env:windir 스타일은 PowerShell 코드로 해석되므로 Command 매개 변수 내에서 사용할 수 있습니다.
마찬가지로 Batch 스크립트동일한 명령을 실행하려면 %~dp0 또는 .\ 대신 $PSScriptRoot 사용하여 현재 실행 디렉터리인 pwsh -File %~dp0test.ps1 -TestParam %windir%. 대신 .\test.ps1 사용하는 경우 리터럴 경로를 찾을 수 없기 때문에 PowerShell에서 오류를 throw합니다.\test.ps1
메모
File 매개 변수는 인수 값 배열을 예상하는 매개 변수를 사용하여 스크립트를 지원할 수 없습니다. 아쉽게도 네이티브 명령이 인수 값을 가져오는 방법에 대한 제한 사항입니다. 네이티브 실행 파일(예: powershell 또는 pwsh)을 호출하는 경우 배열로 수행할 작업을 알 수 없으므로 문자열로 전달됩니다.
파일 값이 -경우 표준 입력에서 명령을 읽습니다.
리디렉션된 표준 입력 없이 pwsh -File - 실행은 일반 세션을 시작합니다. 이는 File 매개 변수를 전혀 지정하지 않는 것과 같습니다. 표준 입력에서 읽을 때 입력 문은 PowerShell 명령 프롬프트에 입력된 것처럼 한 번에 하나의 문을 실행합니다. 문이 올바르게 구문 분석되지 않으면 문이 실행되지 않습니다. 프로세스 종료 코드는 입력 내에서 마지막으로 실행된 명령의 상태에 따라 결정됩니다. 일반 종료에서는 종료 코드가 항상 0. 스크립트 파일이 exit 명령으로 종료되면 프로세스 종료 코드가 exit 명령에 사용되는 숫자 인수로 설정됩니다.
-Command마찬가지로 스크립트 종료 오류가 발생하면 종료 코드가 1. 그러나 -Command경우와 달리 종료 코드가 + C로 실행이 중단되는 경우. 자세한 내용은 $LASTEXITCODE 참조하세요.
메모
PowerShell 7.2를 기준으로 File 매개 변수는 Windows의 .ps1 파일만 허용합니다. 다른 파일 형식이 제공되면 오류가 throw됩니다. 이 동작은 Windows 전용입니다. 다른 플랫폼에서 PowerShell은 다른 파일 형식을 실행하려고 시도합니다.
-Command | -c
명령 값은 스크립트 블록 또는 문자열일 -수 있습니다.
명령 값이 -경우 명령 텍스트는 표준 입력에서 읽습니다.
Command 매개 변수는 Command 에 전달된 값을 ScriptBlock 형식으로 인식할 수 있는 경우에만 실행을 위한 scriptblock 을 허용합니다. 이는 다른 PowerShell 호스트에서 실행할 때만 pwsh.
ScriptBlock 형식은 전달되기 전에 기존 변수에 포함되거나, 식에서 반환되거나, PowerShell 호스트에서 중괄호({})로 묶인 리터럴 scriptblock으로 구문 분석될 pwsh수 있습니다.
pwsh -Command {Get-WinEvent -LogName Security}
에서는 cmd.exescriptblock(또는 ScriptBlock 형식)과 같은 항목이 없으므로 Command 에 전달되는 값은 항상 문자열입니다. 문자열 내에 scriptblock을 작성할 수 있지만, 실행되는 대신 일반적인 PowerShell 프롬프트에 입력한 것처럼 동작하여 scriptblock의 내용을 다시 출력합니다.
명령에 전달된 문자열은 여전히 PowerShell 코드로 실행되므로 스크립트 블록 중괄호는 처음에 실행할 cmd.exe때 필요하지 않습니다. 문자열 내에 정의된 인라인 scriptblock을 실행하기 위해 호출 연산& 자를 사용할 수 있습니다.
pwsh -Command "& {Get-WinEvent -LogName Security}"
Command 값이 문자열인 경우 다음의 모든 인수가 실행할 명령의 일부로 해석되기 때문에 Command pwsh의 마지막 매개 변수여야 합니다.
기존 PowerShell 세션 내에서 호출하면 결과는 라이브 개체가 아닌 역직렬화된 XML 개체로 부모 셸에 반환됩니다. 다른 셸의 경우 결과가 문자열로 반환됩니다.
명령 값이 -경우 표준 입력에서 명령을 읽습니다. 표준 입력과 함께 Command 매개 변수를 사용할 때 표준 입력을 리디렉션해야 합니다. 예를 들어:
@'
"in"
"hi" |
% { "$_ there" }
"out"
'@ | pwsh -NoProfile -Command -
이 예제에서는 다음 출력을 생성합니다.
in
hi there
out
표준 입력에서 읽을 때 입력은 PowerShell 명령 프롬프트에 입력된 것처럼 한 번에 하나의 문을 구문 분석하고 실행합니다. 입력 코드가 올바르게 구문 분석되지 않으면 문이 실행되지 않습니다.
-NoExit 매개 변수를 사용하지 않는 한 표준 입력에서 읽을 입력이 더 이상 없으면 PowerShell 세션이 종료됩니다.
프로세스 종료 코드는 입력 내에서 마지막으로 실행된 명령의 상태에 따라 결정됩니다. 종료 코드는 0$?때 $true1$? 때 $false. 마지막 명령이 외부 프로그램 또는 0 또는 1이외의 종료 코드를 명시적으로 설정하는 PowerShell 스크립트인 경우 해당 종료 코드는 프로세스 종료 코드에 대한 1 변환됩니다. 마찬가지로 throw 또는 -ErrorAction Stop같은 스크립트 종료(runspace-terminating) 오류가 발생하거나 Ctrl+C실행이 중단되는 경우 값 1이 반환됩니다.
특정 종료 코드를 유지하려면 명령 문자열 또는 scriptblock에 추가 exit $LASTEXITCODE 합니다. 자세한 내용은 $LASTEXITCODE 참조하세요.
-CommandWithArgs | -cwa
이는 7.4에서 추가된 실험적 기능이며 PowerShell 7.5-preview.5에서 주류가 되었습니다.
인수를 사용하여 PowerShell 명령을 실행합니다.
-Command달리 이 매개 변수는 명령에서 사용할 수 있는 $args 빌드된-in 변수를 채웁니다.
첫 번째 문자열은 명령입니다. 공백으로 구분된 추가 문자열은 인수입니다.
예를 들어:
pwsh -CommandWithArgs '$args | % { "arg: $_" }' arg1 arg2
이 예제에서는 다음 출력을 생성합니다.
arg: arg1
arg: arg2
REM Quoting required when run from cmd.exe
pwsh -CommandWithArgs "$args | % { ""arg: $_"" }" arg1 arg2
# Quoting required when run from powershell.exe
pwsh -CommandWithArgs '"$args | % { ""arg: $_"" }"' arg1 arg2
-ConfigurationName | -config
PowerShell이 실행되는 구성 엔드포인트를 지정합니다. 기본 PowerShell 원격 엔드포인트 또는 특정 사용자 역할 기능이 있는 사용자 지정 엔드포인트를 포함하여 로컬 컴퓨터에 등록된 모든 엔드포인트일 수 있습니다.
예: pwsh -ConfigurationName AdminRoles
-ConfigurationFile
세션 구성(.pssc) 파일 경로를 지정합니다. 구성 파일에 포함된 구성이 PowerShell 세션에 적용됩니다.
예: pwsh -ConfigurationFile "C:\ProgramData\PowerShell\MyConfig.pssc"
-CustomPipeName
디버깅 및 기타 프로세스 간 통신에 사용되는 추가 IPC 서버(명명된 파이프)에 사용할 이름을 지정합니다. 이렇게 하면 다른 PowerShell 인스턴스에 연결하기 위한 예측 가능한 메커니즘이 제공됩니다. 일반적으로 Enter-PSHostProcess 매개 변수와 함께 사용됩니다.
이 매개 변수는 PowerShell 6.2에서 도입되었습니다.
예를 들어:
# PowerShell instance 1
pwsh -CustomPipeName MyDebugPipe
# PowerShell instance 2
Enter-PSHostProcess -CustomPipeName MyDebugPipe
-EncodedCommand | -e | -ec
명령의 Base64-encoded 문자열 버전을 허용합니다. 이 매개 변수를 사용하여 복잡한 중첩 따옴표가 필요한 명령을 PowerShell에 제출합니다. Base64 표현은 UTF-16LE로 인코딩된 문자열이어야 합니다.
예를 들어:
$command = 'dir "C:\Program Files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -EncodedCommand $encodedCommand
-ExecutionPolicy | -ex | -ep
현재 세션의 기본 실행 정책을 설정하고 $Env:PSExecutionPolicyPreference 환경 변수에 저장합니다. 이 매개 변수는 영구적으로 구성된 실행 정책을 변경하지 않습니다.
이 매개 변수는 Windows 컴퓨터에만 적용됩니다. Windows가 아닌 플랫폼에서는 매개 변수와 제공된 값이 무시됩니다.
-InputFormat | -inp | -if
PowerShell로 전송되는 데이터의 형식을 설명합니다. 유효한 값은 "Text"(텍스트 문자열) 또는 "XML"(serialize된 CLIXML 형식)입니다.
-Interactive | -i
사용자에게 대화형 프롬프트를 표시합니다. NonInteractive 매개 변수의 경우 역방향입니다.
-Login | -l
Linux 및 macOS에서 /bin/sh를 사용하여 /etc/profile 및 ~/.profile과 같은 로그인 프로필을 실행하는 로그인 셸로 PowerShell을 시작합니다. Windows에서 이 스위치는 아무 작업도 수행하지 않습니다.
중요하다
PowerShell을 로그인 셸로 시작하려면 이 매개 변수가 먼저 와야 합니다. 이 매개 변수는 다른 위치에 전달되는 경우 무시됩니다.
Unixpwshike 운영 체제에서 -l 로그인 셸로 설정하려면 다음을 수행합니다.
pwsh전체 절대 경로가/etc/shells아래에 나열되어 있는지 확인합니다.- 이 경로는 일반적으로 Linux의
/usr/bin/pwshmacOS의/usr/local/bin/pwsh것과 같습니다. - 일부 설치 방법을 사용하면 설치 시 이 항목이 자동으로 추가됩니다.
-
pwsh/etc/shells없는 경우 편집기를 사용하여 마지막 줄에pwsh경로를 추가합니다. 이렇게 하려면 편집할 수 있는 상승된 권한이 필요합니다.
- 이 경로는 일반적으로 Linux의
chsh 유틸리티를 사용하여 현재 사용자의 셸을
pwsh설정합니다.chsh -s /usr/bin/pwsh
경고
로그인 셸로 pwsh 설정은 현재 WSL(Linux용 Windows 하위 시스템)에서 지원되지 않으며, 로그인 셸로 pwsh 설정하려고 하면 WSL을 대화형으로 시작할 수 없게 될 수 있습니다.
-MTA
다중 스레드 아파트를 사용하여 PowerShell을 시작합니다. 이 스위치는 Windows에서만 사용할 수 있습니다. Windows가 아닌 플랫폼에서 이 매개 변수를 사용하면 오류가 발생합니다.
-NoExit | -noe
시작 명령을 실행한 후에는 종료되지 않습니다.
예: pwsh -NoExit -Command Get-Date
-NoLogo | -nol
대화형 세션을 시작할 때 배너를 숨깁니다.
-NonInteractive | -noni
이 스위치는 사용자 입력이 필요하지 않은 세션을 만드는 데 사용됩니다. 이는 예약된 작업 또는 CI/CD 파이프라인에서 실행되는 스크립트에 유용합니다.
Read-Host 또는 확인 프롬프트와 같은 대화형 기능을 사용하려고 하면 문이 중단되는 대신 오류가 종료됩니다.
-NoProfile | -nop
PowerShell 프로필을 로드하지 않습니다.
-NoProfileLoadTime
로드 시간이 500밀리초를 초과하면 시작 시 표시되는 PowerShell 프로필 로드 시간 텍스트를 숨깁니다.
-OutputFormat | -o | -of
PowerShell의 출력 형식을 지정하는 방법을 결정합니다. 유효한 값은 "Text"(텍스트 문자열) 또는 "XML"(serialize된 CLIXML 형식)입니다.
예: pwsh -o XML -c Get-Date
PowerShell 세션 내에서 호출되면 역직렬화된 개체를 일반 문자열이 아닌 출력으로 가져옵니다. 다른 셸에서 호출될 때 출력은 CLIXML 텍스트로 형식이 지정된 문자열 데이터입니다.
-SettingsFile | -settings
세션에 대한 시스템-wpowershell.config.json 설정 파일을 재정의합니다. 기본적으로 시스템-wide 설정은 powershell.config.json 디렉터리의 $PSHOME 읽습니다.
이러한 설정은 -ConfigurationName 인수로 지정된 엔드포인트에서 사용되지 않습니다.
예: pwsh -SettingsFile C:\myproject\powershell.config.json
-SSHServerMode | -sshs
PowerShell을 SSH 하위 시스템으로 실행하기 위해 sshd_config 사용됩니다. 다른 용도로 의도되거나 지원되지 않습니다.
-STA
단일 스레드 아파트를 사용하여 PowerShell을 시작합니다. 기본값입니다. 이 스위치는 Windows 플랫폼에서만 사용할 수 있습니다. Windows가 아닌 플랫폼에서 이 매개 변수를 사용하면 오류가 발생합니다.
-Version | -v
이 PowerShell 실행 파일의 버전을 표시합니다. 추가 매개 변수는 무시됩니다.
-WindowStyle | -w
세션의 창 스타일을 설정합니다. 유효한 값은 Normal, Minimized, Maximized 및 Hidden입니다. 이 매개 변수는 Windows에만 적용됩니다. Windows가 아닌 플랫폼에서 이 매개 변수를 사용하면 오류가 발생합니다.
-WorkingDirectory | -wd | -wO
시작 시 실행하여 초기 작업 디렉터리를 설정합니다. 유효한 PowerShell 파일 경로가 지원됩니다.
홈 디렉터리에서 PowerShell을 시작하려면 다음을 사용합니다. pwsh -WorkingDirectory ~
-Help, -?, /?
pwsh대한 도움말을 표시합니다. PowerShell에서 pwsh 명령을 입력하는 경우 명령 매개 변수 앞에 슬래시(-)가 아닌 하이픈(/)을 추가합니다.
PowerShell