PowerShell에서 "%"(퍼센트)는 무엇을합니까?


106

about_Script_Blocks 는 %가 필요하지 않음을 나타내지 만 % 작업은 파이프 라인 후에 스크립트 블록을 시작하는 것 같습니다 .

이것들은 모두 잘 작동합니다.

get-childitem | % { write-host $_.Name }

{ write-host 'hello' }

% { write-host 'hello' }

그러나 파이프 라인 뒤에 스크립트 블록을 추가 할 때 먼저 %를 가져야합니다.

get-childitem | { write-host $_.Name }

2
당신이 "PowerShell을 퍼센트 기호"를 검색 해봤
PeeHaa

17
Get-Help %를 시도했을 수도 있습니다.
mjolinor 2014

7
@mjolinor 유용합니다. 기호에 대한 도움을받을 수 있을지 몰랐습니다. get-help로 $ _를 조회 할 수도 있습니다. 훌륭합니다!
Shaun Luttin 2014

1
모듈러스 연산자이기도합니다! 이 문맥에서는 아닙니다
Cole9350

41
@PeeHaa 귀하의 제안이 여기로 이어집니다.
NiloCK

답변:


144

cmdlet의 컨텍스트에서 사용되는 경우 (예 : 예)에 대한 별칭입니다 ForEach-Object.

> Get-Alias -Definition ForEach-Object

CommandType     Name                                                Definition
-----------     ----                                                ----------
Alias           %                                                   ForEach-Object
Alias           foreach                                             ForEach-Object

방정식의 맥락에서 사용되는 경우 모듈러스 연산자입니다 .

> 11 % 5

1

모듈러스 연산자 %할당 연산자 ( %=) 에서도 사용할 수 있습니다 .

> $this = 11
> $this %= 5
> $this

1

2
다른 컨텍스트에서 모듈러스 연산자로 % 역할도 포함하면 이것을 답으로 표시하겠습니다.
Shaun Luttin 2014

1
방정식 및 대입 연산자 예제 추가
Kohlbrr 2014-04-03

17
Foreach-Object의 경우 "%"기호를 사용하지 않는 것이 좋습니다. 특히 PS를 처음 사용하는 사람들이 코드를 읽고 유지 관리하기 어렵게 만듭니다. PS를받는 사람이 많을수록 좋습니다.
Simon Catlin 2014

1
MSDN의 공식 문서에서 ForEach-Object 의미는 어디에서 찾을 수 있습니까?
rightfold

나머지는 단지 문법 설탕 때문에 나는 우리가 모든 어셈블리를 사용해야 그 논리에 의해, 사이먼 Catlin을 동의
reggaeguitar가

16

포스트 PowerShell-특수 문자 및 토큰 은 다음을 포함한 여러 기호에 대한 설명을 제공합니다.%

% (percentage)

1. Shortcut to foreach.
Task: Print all items in a collection.
Solution.
... | % { Write-Host $_ }

2. Remainder of division, same as Mod in VB.
Example:
5 % 2

7
값은 %를 포함하여 여러 특수 문자를 설명하는 링크입니다 : @ShaunLuttin
마이클 Freidgeim는

기술적으로는 ForEach-Object. 문의 시작 부분에서 사용되는 경우를 제외하고는에 ForEach대한 별칭이기도합니다 . ForEach-Objectwhile
mwfearnley

4

%대체 할 수 있습니다 중 하나없이 작동하지 않습니다하는 나 .Get-ChildItem | ForEach-Object { write-host $_.Name }%ForEach-Object

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.