我使用 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/