时间:2018-10-11 22:14:04

标签: powershell

下午好! 我对Powershell还是陌生的,我正在寻找一种方法来记录之后发生的情况 我以第51行为例调用Command。

我可以打印登录到该目录的设备吗?

DEL *.*发生后的第52行,是否可以打印正在删除的内容到文件?

51 Invoke-Command -device $ipaddress -command 'cd \firmware'| Out-File $LogFileName -Append;
52 Invoke-Command -device $ipaddress -command 'DEL *.*'| Out-File $LogFileName -Append;

Stop Transcript

}`

我尝试使用Start-Transcript -path $ LogFileName -append //停止脚本,但这无法显示调用每个命令时发生的情况。

1 个答案:

答案 0 :(得分:1)

要回答您的第二个问题:

  

在DEL 之后发生的第52行。可以打印出正在打印的内容   删除到文件了吗?

Remove-Item(又名DEL)具有一个开关-Verbose,该开关将输出已删除文件的列表。麻烦的是它将列表输出到“详细”流。除了传统的输出流和错误流之外,Powershell还可在许多流之一上生成输出。其中之一是详细信息流。不幸的是,只有输出流通过管道,其他流才刚刚输出到控制台。幸运的是,您可以使用redirection operator >&将其他流重定向到出流。在运算符的左侧,包括要重定向的流的编号,在右侧,包括要重定向的流的编号。对于您的示例,您想从详细流(4)重定向到输出流(1):

4>&1

所以命令看起来像这样:

Invoke-command -ScriptBlock {del *.* -Verbose 4>&1} | Out-File $LogFileName -Append