如何使用 PowerShell 获取 dos 命令的输出

如何使用 PowerShell 获取 dos 命令的输出

我在 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];

一些更多的 信息

相关内容