Это старый вопрос, но в случае, если это поможет кому-то еще: вы можете установить энергозависимое логическое значение, когда вызываете shutdown (), и каждая отправленная задача завершается, если это логическое значение задано до реального запуска. Это позволит задачам, которые действительно начали завершаться, но не позволит задачам, находящимся в очереди, начать свою фактическую деятельность.
Проблема в том, что вам нужно преобразовать свой код в следующий
Repeat-string "x" 7
. В PowerShell каждый раз, когда вы помещаете группу значений внутри (), вы создаете массив. Это означает, что в вашем примере вы фактически передаете массив функции как единственный параметр.
Вот лучший способ, просто умножьте вашу (любую) строку на N повторов:
PS > function Repeat-String([string]$str, [int]$repeat) { $str * $repeat }
PS > Repeat-String x 7
xxxxxxx
PS > Repeat-String JMarsch 3
JMarschJMarschJMarsch
Конечно, JaredPar прав.
Мне нравится использовать встроенную функцию диапазона ..
для этого тоже: (обратите внимание, я начинаю с 1 вместо 0)
Function Repeat-String([string]$str, [int]$repeat) {
$builder = new-object System.Text.StringBuilder
1..$repeat | %{ [void]$builder.Append($str) }
return $builder.ToString()
}
Repeat-string "x" 7