![如何使用 PowerShell 获取 dos 命令的输出](https://linux22.com/image/1569135/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20PowerShell%20%E8%8E%B7%E5%8F%96%20dos%20%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA.png)
我在 PowerShell 中运行 dos 命令并获取了正确的输出。但我想捕获并处理输出。
例子:
PS:>cmd.exe bpclimagelist.exe -t FULL
Backed Up Expires Files KB C Sched Type Policy
---------------- ---------- -------- ----------- - --------------- ------------
08/25/2018 00:03 11/25/2018 179940 88589741 N Full Backup WIN-01
我想从列出的表格中获取备份日期。有什么方法可以实现吗?
答案1
您不必调用 cmd.exe 来在 PS 控制台中运行可执行文件。
如果您通过管道传输可执行文件的输出,那么您可以将其作为数组,然后就可以开始对其进行操作。
逐行查看输出内容:
PS:>bpclimagelist.exe -t FULL | Foreach-Object{ Write-Host $_ };
您可以创建一个数组类型变量并使用它。例如:
PS:>$a = bpclimagelist.exe -t FULL; Write-Host $a[2];
将打印出:
08/25/2018 00:03 11/25/2018 179940 88589741 N Full Backup WIN-01
如果您的可执行文件不在 PATH 中和/或它包含空格,那么您应该使用调用运算符 (&) 并引用该 exe。
PS:>$a = &'C:\BCP Program Folder\bpclimagelist.exe' -t FULL; Write-Host $a[2];