我有一个PowerShell脚本,其中包含:
1. $GetP
:变量是(获取进程命令)
2. $path
和 $getfile
:是用于获取 $GetP
路径.
中的所有进程路径的两个变量3. foreach
语法:是一种获取$getfile中所有路径的方法(合法版权).
...
现在我想将版权作为新成员添加到每个路径的$GetP
或Get-Process
.
她是我的错误语法:
$GetP = Get-Process
$path = $GetP | select -ExpandProperty Path
$getfile = dir $path -Include *.* -recurse
foreach ($iffile in $getfile)
{
$fname = $iffile.FullName
$vfile = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($fname)
$Copyright = $vfile.LegalCopyright
#$Copyright
}
$FileCopyRight = foreach ($Copyright in $GetP) {
$fpmvar = $vfile.LegalCopyright
$Copyright | Add-Member -NotePropertyName CopyRight -NotePropertyValue $fpmvar -PassThru
}
$GetP | select CopyRight
注意:当您删除$Copyright
中的"#"注释时,它将显示所有版权。
您需要一次执行一个进程,或者将变量与 ex. 哈希表链接在一起。 自动取款机。 $copyright
将只是 $getfile
-array 中最后一个文件的值。
我建议为每个进程运行一个循环,将版权添加到该对象并继续下一个进程。
尝试:
Get-Process | ForEach-Object {
#If path is defined
if($_.Path) {
$CopyRight = (Get-Item $_.Path).VersionInfo.LegalCopyright
Add-Member -InputObject $_ -NotePropertyName "CopyRight" -NotePropertyValue $CopyRight -PassThru
}
} | Select Name, CopyRight
示例输出:
ApMsgFwd Copyright (C) 2006-2014 Alps Electric Co., Ltd.
ApntEx Copyright (C) 1998-2014 Alps Electric Co., Ltd.
Apoint Copyright (C) 1999-2015 Alps Electric Co., Ltd.
ApplicationFrameHost © Microsoft Corporation. All rights reserved.
AppVClient © Microsoft Corporation. All rights reserved.
AppVStreamingUX Copyright (c) Microsoft Corporation. All rights reserved.
armsvc Copyright © 2013 Adobe Systems Incorporated. All rights reserved.
....