如何使用PowerShell输出dos命令


0

我在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
将DOS命令的输出重新分配给文件( > %TEMP%\outfile.txt )然后在PS脚本中读取它的输出数据。
Akina

Answers:


0

您不必调用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];

一些 更多 信息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.