PowerShell中的百分号"%"和问号"?"

时间:2023-01-08 23:22:19

研究一个问题, 发现一篇White Paper上写的PowerShell上有如下的语句:

$farmName = Get-spfarm |%{ $_.Name }

笔者PowerShell比较弱, 看不懂百分号的意思. 于是询问了专家Tracy Yu. 得到如下的答复:

这里的百分号是个PowerShell中的Alias, 意思是ForEach-Object.

 

如图:

PowerShell中的百分号"%"和问号"?"

不推荐写PowerShell的时候使用这些Alias, 不方便其他人看懂.

 

另外, Alias是可以通过命令New-Alias新定义, 和使用Set-Alias另外修改的.

 

默认所有Alias的完整列表如下:


CommandType     Name                            Definition                    
-----------     ----                            ----------                    
Alias           %                               ForEach-Object                
Alias           ?                               Where-Object                  
Alias           ac                              Add-Content                   
Alias           asnp                            Add-PSSnapIn                  
Alias           cat                             Get-Content                   
Alias           cd                              Set-Location                  
Alias           chdir                           Set-Location                  
Alias           clc                             Clear-Content                 
Alias           clear                           Clear-Host                    
Alias           clhy                            Clear-History                 
Alias           cli                             Clear-Item                    
Alias           clp                             Clear-ItemProperty            
Alias           cls                             Clear-Host                    
Alias           clv                             Clear-Variable                
Alias           compare                         Compare-Object                
Alias           copy                            Copy-Item                     
Alias           cp                              Copy-Item                     
Alias           cpi                             Copy-Item                     
Alias           cpp                             Copy-ItemProperty             
Alias           cvpa                            Convert-Path                  
Alias           dbp                             Disable-PSBreakpoint          
Alias           del                             Remove-Item                   
Alias           diff                            Compare-Object                
Alias           dir                             Get-ChildItem                 
Alias           ebp                             Enable-PSBreakpoint           
Alias           echo                            Write-Output                  
Alias           epal                            Export-Alias                  
Alias           epcsv                           Export-Csv                    
Alias           epsn                            Export-PSSession              
Alias           erase                           Remove-Item                   
Alias           etsn                            Enter-PSSession               
Alias           exsn                            Exit-PSSession                
Alias           fc                              Format-Custom                 
Alias           fl                              Format-List                   
Alias           foreach                         ForEach-Object                
Alias           ft                              Format-Table                  
Alias           fw                              Format-Wide                   
Alias           gal                             Get-Alias                     
Alias           gbp                             Get-PSBreakpoint              
Alias           gc                              Get-Content                   
Alias           gci                             Get-ChildItem                 
Alias           gcm                             Get-Command                   
Alias           gcs                             Get-PSCallStack               
Alias           gdr                             Get-PSDrive                   
Alias           ghy                             Get-History                   
Alias           gi                              Get-Item                      
Alias           gjb                             Get-Job                       
Alias           gl                              Get-Location                  
Alias           gm                              Get-Member                    
Alias           gmo                             Get-Module                    
Alias           gp                              Get-ItemProperty              
Alias           gps                             Get-Process                   
Alias           group                           Group-Object                  
Alias           gsn                             Get-PSSession                 
Alias           gsnp                            Get-PSSnapIn                  
Alias           gsv                             Get-Service                   
Alias           gu                              Get-Unique                    
Alias           gv                              Get-Variable                  
Alias           gwmi                            Get-WmiObject                 
Alias           h                               Get-History                   
Alias           history                         Get-History                   
Alias           icm                             Invoke-Command                
Alias           iex                             Invoke-Expression             
Alias           ihy                             Invoke-History                
Alias           ii                              Invoke-Item                   
Alias           ipal                            Import-Alias                  
Alias           ipcsv                           Import-Csv                    
Alias           ipmo                            Import-Module                 
Alias           ipsn                            Import-PSSession              
Alias           ise                             powershell_ise.exe            
Alias           iwmi                            Invoke-WMIMethod              
Alias           kill                            Stop-Process                  
Alias           lp                              Out-Printer                   
Alias           ls                              Get-ChildItem                 
Alias           man                             help                          
Alias           md                              mkdir                         
Alias           measure                         Measure-Object                
Alias           mi                              Move-Item                     
Alias           mount                           New-PSDrive                   
Alias           move                            Move-Item                     
Alias           mp                              Move-ItemProperty             
Alias           mv                              Move-Item                     
Alias           nal                             New-Alias                     
Alias           ndr                             New-PSDrive                   
Alias           ni                              New-Item                      
Alias           nmo                             New-Module                    
Alias           nsn                             New-PSSession                 
Alias           nv                              New-Variable                  
Alias           ogv                             Out-GridView                  
Alias           oh                              Out-Host                      
Alias           popd                            Pop-Location                  
Alias           ps                              Get-Process                   
Alias           pushd                           Push-Location                 
Alias           pwd                             Get-Location                  
Alias           r                               Invoke-History                
Alias           rbp                             Remove-PSBreakpoint           
Alias           rcjb                            Receive-Job                   
Alias           rd                              Remove-Item                   
Alias           rdr                             Remove-PSDrive                
Alias           ren                             Rename-Item                   
Alias           ri                              Remove-Item                   
Alias           rjb                             Remove-Job                    
Alias           rm                              Remove-Item                   
Alias           rmdir                           Remove-Item                   
Alias           rmo                             Remove-Module                 
Alias           rni                             Rename-Item                   
Alias           rnp                             Rename-ItemProperty           
Alias           rp                              Remove-ItemProperty           
Alias           rsn                             Remove-PSSession              
Alias           rsnp                            Remove-PSSnapin               
Alias           rv                              Remove-Variable               
Alias           rvpa                            Resolve-Path                  
Alias           rwmi                            Remove-WMIObject              
Alias           sajb                            Start-Job                     
Alias           sal                             Set-Alias                     
Alias           saps                            Start-Process                 
Alias           sasv                            Start-Service                 
Alias           sbp                             Set-PSBreakpoint              
Alias           sc                              Set-Content                   
Alias           select                          Select-Object                 
Alias           set                             Set-Variable                  
Alias           si                              Set-Item                      
Alias           sl                              Set-Location                  
Alias           sleep                           Start-Sleep                   
Alias           sort                            Sort-Object                   
Alias           sp                              Set-ItemProperty              
Alias           spjb                            Stop-Job                      
Alias           spps                            Stop-Process                  
Alias           spsv                            Stop-Service                  
Alias           start                           Start-Process                 
Alias           sv                              Set-Variable                  
Alias           swmi                            Set-WMIInstance               
Alias           tee                             Tee-Object                    
Alias           type                            Get-Content                   
Alias           where                           Where-Object                  
Alias           wjb                             Wait-Job                      
Alias           write                           Write-Output                  

 

另外, PowerShell的清屏命令为Clear-Host, Alias为cls, 跟Dos的命令一样哦.

 

参考资料

=====================

A Cheat Sheet for All the *{_(%#$] PowerShell Punctuation

http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/a-cheat-sheet-for-all

An A-Z Index of Windows PowerShell 2.0 commands

http://ss64.com/ps/