Это не возвращает ничего:не получить работу, результаты для ИГС, когда -path переменная
$x = "C:\temp"
Start-Job -ScriptBlock {get-childItem -path $x} | Wait-Job | Receive-job
Но обеспечивая параметр пути без переменной, вот так ...
Start-Job -ScriptBlock {get-childItem -path C:\temp} | Wait-Job | Receive-job
.. . Возвращает содержимое этой временной папки durrr.txt в этом случае. Это на Windows Server 2008R2 SP1 с Powershell $ выходом host.version следующим образом:
Major Minor Build Revision
----- ----- ----- --------
3 0 -1 -1
Подозревая v3 Powershell, я попытался обновление SP1 рабочего стола Windows 7 из v2 в v3, но не повез воссоздание проблемы. На этом обновленном рабочем столе выход $ host.version теперь соответствует указанному выше.
Что происходит?
EDIT/Что происходит?
лопнул работа кажется эквивалентна
Start-Job -ScriptBlock {get-childItem -path $null} | Wait-Job | Receive-job
Так GCI вернулись результаты для текущего каталога фонового задания, в папку Документы, которые оказались пустыми.
Аллилуйя, ТНХ. Но почему различное поведение на Win7 vs 2008R2? – noam
Ваш код не работает ни в powershell v2.0/v3.0 на xp, 7, 2008, 2008 r2. Единственный способ передать переменную в sciptblock - использовать аргумент-параграф. В v3 я думаю, что вы можете использовать '-path $, используя: x', и он работает. –
Первые две строки в моем вопросе возвращают результаты на Win7. Я прочитаю аргументы скриптового блока. – noam