0

我已导出我的 Java 进程以包含“命令行”列。该文件位于使用以下 powershell 脚本的 .cvs 文件中:

Get-WmiObject win32_process -Filter "name like '%java.exe'"|select ProcessName,@{Name='WorkingSet (KB)';Expression={($_.WS/1KB)}},ProcessId,CommandLine|ft -AutoSize

每个 java.exe 都是唯一的(显然),我发现识别它指向的唯一方法是查看 Appserver 目录的命令行参数。

(Install_Directory)\AppServer\Profiles\AppSrv01\*\Configuration. 

'*' 变量是键,命令行中的信息在参数中具有相同的信息。我需要将变量复制到新单元格

最后,我将删除命令行列,以便只看到 ProcessName、WorkSet、ProcessID 和 Domain。域是我需要的最后一块。

无论这是我现有的 powershell 的扩展,还是我可以将某些东西放入 excel 中以将“AppSrv01”和“配置”之间的所有内容复制到新单元格。

4

1 回答 1

0

您可以像这样替换不需要的值:

Get-WmiObject win32_process -Filter "name like '%java.exe'"|
select ProcessName,
       @{Name='WorkingSet (KB)';Expression={($_.WS/1KB)}},
       ProcessId,
       CommandLine,
       @{Name='Domain';Expression={$_.CommandLine -replace [Regex]::Escape('(Install_Directory)\AppServer\Profiles\AppSrv01') -replace [Regex]::Escape('\Configuration')}}|ft -AutoSize

确保替换正确的值而不是(Install_Directory)

于 2016-05-06T07:59:31.673 回答