powershell - 如何使用powershell截取命令输出的指定字符串?

标签 powershell

我使用 ipptool 来获取当前打印作业的状态。

C:\Users\Administrator>ipptool http://localhost/ipp/printers get-completed-jobs.test


job-id job-state job-name job-originating-user-name job-media-sheets-completed

------ --------- -------- ------------------------- --------------------------

14     canceled                RedHat                    1

13     completed               RedHat                    1

12     completed               RedHat                    1

11     completed               RedHat                    1

如何获取指定的 job-id 和 job-state?

Powershell使用什么方法来截取字符串?

问题1:

获取以下字符串:

14 取消

问题2:

获取以下字符串:

13 已完成

12已完成

问题3:

如何获取最新的作业 ID 和作业状态?

最佳答案

cmdlet ConvertFrom-SourceTable 可从PowerShell gallery下载( GitHub: iRon7/ConvertFrom-SourceTable ) 能够读取此类数据表:

$Jobs = ConvertFrom-SourceTable '

job-id job-state job-name job-originating-user-name job-media-sheets-completed

------ --------- -------- ------------------------- --------------------------

14     canceled                RedHat                    1

13     completed               RedHat                    1

12     completed               RedHat                    1

11     completed               RedHat                    1
'

就您而言,可能是这样的:

$Jobs = $(.\ipptool http://localhost/ipp/printers get-completed-jobs.test) | ConvertFrom-SourceTable

您的其余问题实际上是基本的 PowerShell 命令问题。
如本示例所示,Jobs 对象将使您能够访问例如作业 14 的状态:

$Jobs | ?{$_."job-id" -eq 14} | Select -Expand "job-state"
canceled

以及“如何获取最新的作业 ID 和作业状态?”:
(假设最近的作业始终位于最上面)

$Jobs | Select  "job-id", "job-state" -First 1

job-id job-state
------ ---------
14     canceled

(有关其他 ConvertFrom-SourceTable 示例,请参阅: https://stackoverflow.com/search?q=ConvertFrom-SourceTable )

关于powershell - 如何使用powershell截取命令输出的指定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51276722/

相关文章:

powershell - 如何抑制用户在没有参数参数的情况下调用我的 powershell 脚本时发生的错误

powershell - 写输出在回调内不起作用

powershell - 如何在哈希表的末尾添加键/值对?

c# - Powershell Add-Type 在编译 .dll (C#) 时禁止创建 .pdb

sql - 使用 PowerShell 检查 SQL Server 中的行是否存在

windows - 如何在 Windows 10 上的 PowerShell 中安装 NuGet?

powershell - Azure CLI 能否获取租户中运行的所有资源的列表?

azure - 在 Azure 应用服务上运行 Kentico 持续集成

powershell - 设置Outlook的 'show this address list first'选项

PowerShell 无法确定正在使用的参数集