Powershell将可执行文件输出到文本文件中

时间:2012-06-12 15:15:17

标签: powershell

我正在尝试编写一个Powershell脚本,用于处理w32tm.exe \ monitor的输出并将所有内容输出到文本文件中。我正在尝试以下代码,但是因为我能够创建文本文件,所以有些错误,但是没有任何内容写入其中:

#Take output of w32tm.exe and output into a plain text file
$file = "C:\Documents and Settings\a411882\My Documents\Scripts\timeScript.txt"
$executable = "w32tm.exe /monitor"
invoke-expression $executable | out-file -filepath $file

我在这里做错了什么?我是Powershell的新手,所以任何建议都会非常感激!

编辑: 我可以在运行时将所有数据显示在控制台上,但是我希望将数据写在文本文件中。

编辑2: 我设法让所有东西最终输出。我想尝试避免使用>运算符写出文本文件,希望学习更多关于out-file cmdlet但是做一个简单的invoke-expression $ executable> $ file设法完成工作。我仍然不明白为什么cmdlet无法正常工作。

2 个答案:

答案 0 :(得分:1)

也许Invoke-Expression没有正确地将输出发送到stdout?我不希望这样,但是发生了一些奇怪的事情。尝试单独运行w32tm.exe

$file = "C:\Documents and Settings\a411882\My Documents\Scripts\timeScript.txt"
w32tm.exe /monitor | Out-File -FilePath $file

答案 1 :(得分:0)

您可以使用Start-Process,它还可以重定向错误输出:

Start-Process w32tm.exe -ArgumentList "/monitor" -Wait -RedirectStandardOutput "output.txt" -RedirectStandardError "error.txt"