我使用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
如何获取指定的工作ID和工作状态?
Powershell使用什么方法截取字符串?
问题1:
获取以下字符串:
14个已取消
问题2:
获取以下字符串:
已完成13次
已完成12次
问题3:
如何获取最新的工作ID和工作状态?
答案 0 :(得分:2)
可从ConvertFrom-SourceTable
(PowerShell gallery
)下载的cmdlet 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)