爲什麼這段代碼無效?開始工作問題
function teste
{
begin
{
function lala {
while ($true) {
"JJJJ" | Out-File c:\Testes\teste.txt -Append
}
}
}
process {
Start-Job -ScriptBlock {lala}
}
}
爲什麼這段代碼無效?開始工作問題
function teste
{
begin
{
function lala {
while ($true) {
"JJJJ" | Out-File c:\Testes\teste.txt -Append
}
}
}
process {
Start-Job -ScriptBlock {lala}
}
}
我最好的猜測是範圍界定。當Start-Job運行腳本塊時,它會在不同的上下文中運行它 - 其中沒有定義「lala」的上下文。但是,如果你要修改你的代碼如下所示:
function Run-As-Background-Job
{
begin
{
$appendToFile = {
while ($true) {
"JJJJ" | Out-File c:\Testes\teste.txt -Append
}
}
}
process {
Start-Job -ScriptBlock $appendToFile
}
}
後臺作業不會試圖調用未被定義的名稱 - 相反,整個腳本塊將被傳遞給它,事情應該管用。
請注意,我建議您測試而不使用while循環,就像我那樣,因爲這會很快填滿磁盤。
另外,請在發佈代碼時注意更有意義的功能和變量名稱。 :-)
你是對的,我正在做我的測試,並忘記更改名稱。抱歉。 但仍然沒有工作:( – user353401 2010-05-29 10:30:25
你確定我的版本看起來現在這個樣子: 功能運行作爲背景,工作 { 開始 {$ appendToFile = { [System.DateTime的] ::現在|?出文件C:\用戶\勞裏\ test.txt的-append }} 過程 { 啓動工作-ScriptBlock $ appendToFile }} 和生產 「的test.txt」 與相應的內容,所以也許你的代碼還有其他錯誤 – Rytmis 2010-05-29 10:41:31
我正在複製你的代碼:)。嘗試新的會話並重新加載我的IDE ...不工作:( – user353401 2010-05-29 10:42:53
請問您能否在未來嘗試改進您的格式?我爲你清理了這個,但如果我不必這樣做,那會很好。 – Rytmis 2010-05-29 10:07:10
好的..其實我第一次嘗試這樣做。 :) – user353401 2010-05-29 10:40:00