gpt4 book ai didi

powershell - Powershell在foreach序列中获取外部变量

转载 作者:行者123 更新时间:2023-12-02 23:16:42 26 4
gpt4 key购买 nike

    PS C:\Projects> 
get-childitem -recurse
| where { $_.Extension -eq ".csproj" }
| foreach { Get-Content $_.FullName
| foreach { $_.Length } }

这将打印csproj中每行的行大小(非常没有意义,为true)。当我进一步潜水时,如何还能输出外部变量(可以这么说)。因此,例如,出于毫无意义的原因,我也想让它也打印文件名,这样我将得到:

Dog.csproj:10
Dog.csproj:50
Dog.csproj:4
Cat.csproj:100
Cat.csproj:440

我想我想做这样的事情,但这显然行不通,(是的,这个例子是没有意义的)
  PS C:\Projects> 
get-childitem -recurse
| STORE THIS IN $filename | where { $_.Extension -eq ".csproj" }
| foreach { Get-Content $_.FullName
| foreach { $filename ":" $_.Length } }

我玩了tee-object和outputvariable,但我有点迷茫。如果功能强大的专家可以回答问题,那将是有帮助的,此外,如果您可以推荐一本解释语言语法基础知识的书或资源,而不是COM / WMI / VB等的API猴子之类的东西。将不胜感激。谢谢

最佳答案

这很简单:

`gci . -r "*.csproj" | % { $name = $_.name; gc $_.fullname |
% { $name + ": " + $_.length } }`

如果您还不知道缩写,则相当于:
`Get-ChildItem . -recurse "*.csproj" | 
foreach { $name = $_.name; Get-Content $_.fullname |
foreach { $name + ": " + $_.length } }`

至于书的推荐,必须是布鲁斯·佩耶特的书: http://www.amazon.com/Windows-PowerShell-Action-Bruce-Payette/dp/1932394907

麦克风

关于powershell - Powershell在foreach序列中获取外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/435035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com