web-dev-qa-db-fra.com

Que fait "%" (pourcentage) dans PowerShell?

Il semble que l'opération% commence les blocs de script après le pipeline, bien que about_Script_Blocks indique que% n'est pas nécessaire.

Tout cela fonctionne très bien.

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

{ write-Host 'hello' }

%{ write-Host 'hello' }

Mais lorsque nous ajoutons un bloc de script après le pipeline, nous devons d'abord avoir le%.

get-childitem | { write-Host $_.Name }
90
Shaun Luttin

Lorsqu'il est utilisé dans le contexte d'une applet de commande (tel que votre exemple), il s'agit d'un alias pour ForEach-Object:

> Get-Alias -Definition ForEach-Object

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

Lorsqu'il est utilisé dans le contexte d'une équation, il s'agit de opérateur de module :

> 11 % 5

1

et en tant qu'opérateur de module, % peut également être utilisé dans un opérateur d’affectation (%=):

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

1
126
Kohlbrr

Un article PowerShell - Caractères spéciaux et jetons
décrit plusieurs symboles, y compris%

% (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
9
Michael Freidgeim

% peut remplacer Get-ChildItem |ForEach-Object{ write-Host $_.Name } et ça ne peut pas aller sans % ou ForEach-Object

2
Xao