1

w32tm.exe \monitor の出力を受け取り、すべてをテキスト ファイルに出力する作業用の Powershell スクリプトを作成しようとしています。次のコードを試していますが、テキスト ファイルを作成できるため何か問題がありますが、何も書き込まれていません。

#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を初めて使用するので、アドバイスをいただければ幸いです。

編集:これを実行すると、コンソールに表示されるすべてのデータを取得できますが、データをテキスト ファイルに書き込む必要があります。

EDIT 2:最終的にすべてを出力することができました。> 演算子を使用してテキスト ファイルに書き出すことは避けたかったのですが、out-file コマンドレットについてもう少し学びたいと思っていましたが、単純な呼び出し式 $executable > $file を実行することで、なんとか仕事を終わらせることができました。コマンドレットが正しく機能しない理由はまだわかりません。

4

2 に答える 2

1

出力がstdoutInvoke-Expressionに適切に送信されていない可能性がありますか? 私はそれを期待していませんでしたが、奇妙なことが起こりました。w32tm.exe単独で実行してみてください:

$file = "C:\Documents and Settings\a411882\My Documents\Scripts\timeScript.txt"
w32tm.exe /monitor | Out-File -FilePath $file
于 2012-06-12T18:53:19.920 に答える