2012-06-12 43 views
1

我正在嘗試編寫一個Powershell腳本,用於將輸出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的新手,因此任何建議都將不勝感激!

編輯: 我可以得到所有的數據顯示在控制檯上,當我運行這個,但我希望數據被寫入文本文件。編輯2: 我設法讓所有東西最終輸出。我想避免使用>操作符來寫出文本文件,希望能夠學習一些關於out-file cmdlet的知識,但是要做一個簡單的invoke-expression $ executable> $ file來完成工作。我仍然不明白爲什麼cmdlet無法正常工作。

+0

只是使用'invoke-expression $ executable'給你預期的輸出到控制檯?在我的會話中使用你的代碼,改變我的個人資料目錄路徑它的工作原理! –

回答

1

也許Invoke-Expression不正確地發送輸出到標準輸出?我不期待,但發生了一些陌生的事情。嘗試自行運行w32tm.exe

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