PowerShell动态定义变量 1


 

今天有群友问:

KOC  22:16:17
$ccc =get-process 这个是把所有结果保持在一个变量里。
我想实现。一项一个变量。

将结果自动保存到数组集合中,是PowerShell的优势,但是到了这个大哥这里,竟然行不通了。他想实现一项一个变量,这是一个不合理的要求。但是如果他是客户,客户即上帝,你得变着法去满足他呀!引出此题“PowerShell动态定义变量”,顺便推广下PowerShell命令New-Variable虚拟驱动器variable

比如我想把Get-Process的返回结果保存在$pro_1,$pro_2这样的变量中:

PS> $i=1
PS> Get-Process | foreach { New-Variable -Name "pro_$i" -Value $_ ;$i++ }

查看变量的$pro_2,是支付宝进程:

PS> $pro_2

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    385      20     4752       6328    85            1992 AlipaySecSvc

比如我想将所有service保存到$sevice_serviceName这样的变量中:

PS> Get-Service | foreach { New-Variable -Name "service_$($_.Name)" -Value $_ }

怎样查看刚才定义的service系列变量:

PS> ls variable:service_*

Name                           Value
----                           -----
service_AdobeARMservice        AdobeARMservice
service_AeLookupSvc            AeLookupSvc
service_ALG                    ALG
service_AlipaySecSvc           AlipaySecSvc
service_AppHostSvc             AppHostSvc
service_AppIDSvc               AppIDSvc
service_Appinfo                Appinfo
service_AppMgmt                AppMgmt
service_AppReadiness           AppReadiness
service_AppXSvc                AppXSvc
service_aspnet_state           aspnet_state
service_AudioEndpointBuilder   AudioEndpointBuilder
service_Audiosrv               Audiosrv
service_avast! Antivirus       avast! Antivirus
……

 

本文链接: https://www.pstips.net/define-variable-dynamically.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

一条评论 “PowerShell动态定义变量