我正在寫一個相當長的PowerShell腳本來執行很多功能。大多數情況下,一切都很順利。PowerShell - 輸出到一個不起作用的變量
但是,我在腳本的各個級別運行的另一個函數是一個非常詳細的日誌。我會後命令行部爲例(簡化):
$Batch = $RunMe[1]
$ResultCode = (Invoke-Expression $Batch -ErrorAction Stop)
$ResultCode
我的預期的結果是:
Return Code 0
然後我將記錄它。相反,我得到這樣的:
C:\batchfiles\batchfile.bat argument
這是我使用Invoke-Expression
要執行的命令。
變量的一些簡單說明:
$RunMe
是存儲命令(0要麼「批量」或「過程」和1是要運行的指令)
$Batch
是一個數組(這是第一次引用它)
$CurrFileToExec
是當前正在處理的文件(該腳本一次在文件夾上運行)。我使用它來替換從SQL獲得的命令行的字符串。我不能得到$ResultCode
傳遞命令的正確輸出。它只是再次傳遞命令行函數($Batch
)。
正如我所說的,實際的功能部分工作得很好,但我不能得到我的日誌文件的返回碼。
如果您可以將更小,更簡單的腳本與當前和預期的結果進行比較,我認爲您會得到更好的回覆。這個問題充滿了實現細節(特定於你的工作的東西),這使得它很難理解 - 即SQL與你的問題無關。 – x0n 2010-11-12 18:28:34
@ x0n - 好點,我已經削減了這個問題。 – JNK 2010-11-12 18:38:16