none
как передать переменную в фоновое задание? RRS feed

  • Вопрос

  • До боли простая задача передать полученную ранее переменную в фоновое задание, стандартная задача копирование...почему в фоне? потому что нужно выполнять несколько задач одновременно не дожидаясь окончания обработки.
    но вопрос остался - т.е. данный код не работает.
    $1 = 'c:\test'
    $2 = 'c:\test1'
    $3 = 'file'
    Start-job -Name "Job" -ArgumentList $1, $2, $3 -ScriptBlock {robocopy $1 $2 $3} 

    а вот этот работает, но теряет смысл
    Start-job -Name "Job" -ScriptBlock {$1 = 'c:\test'; $2 = 'c:\test1'; $3 = 'file'; robocopy $1 $2 $3} 

    Может есть какие то идеи?

    Быть может, последняя строка должна выглядеть так:
    Start-job -Name "Job" -ArgumentList $1, $2, $3 -ScriptBlock {param($1,$2,$3) robocopy $1 $2 $3} 
    ???

    немного не так... но спасибо -
    $1 = 'c:\test'
    $2 = 'c:\test1'
    $3 = 'file'
     Start-job -Name "Job" -ArgumentList $1, $2, $3 -ScriptBlock {param($a,$b,$c) robocopy $a $b $c} 
    • Изменено deovalente 29 марта 2010 г. 11:57 добавил решение
    29 марта 2010 г. 9:34

Ответы

  • >но вопрос остался - т.е. данный код не работает.
    $1 = 'c:\test'
    $2 = 'c:\test1'
    $3 = 'file'
    Start-job -Name "Job" -ArgumentList $1, $2, $3 -ScriptBlock {robocopy $1 $2 $3} 
    Может есть какие то идеи?
     
     
    Быть может, последняя строка должна выглядеть так:
    Start-job -Name "Job" -ArgumentList $1, $2, $3 -ScriptBlock {param($1,$2,$3) robocopy $1 $2 $3} 
    ???
    • Предложено в качестве ответа s.h.s. _ 29 марта 2010 г. 11:37
    • Помечено в качестве ответа Vasily GusevModerator 29 марта 2010 г. 21:38
    • Помечено в качестве ответа Vasily GusevModerator 29 марта 2010 г. 21:39
    29 марта 2010 г. 10:58