Один из способов сделать это - использовать блок сценариев с блоком параметров.
Если в нем есть один аргумент с пробелом, такой как путь к файлу / папке, он долженбыть процитированным, чтобы рассматривать это как отдельный элемент.Аргументы - это массив, передаваемый в блок скрипта.
В этом примере используется блок скрипта, но вы также можете использовать скрипт PowerShell, используя параметр -FilePath
командлета Start-Job
вместо параметра -ScriptBlock
.
Вот еще один пример с аргументами с пробелами:
$scriptBlock = {
param (
[string] $Source,
[string] $Destination
)
$output = & xcopy $Source $Destination 2>&1
return $output
}
$job = Start-Job -scriptblock $scriptBlock -ArgumentList 'C:\My Folder', 'C:\My Folder 2'
Wait-Job $job
Receive-Job $job
Вот пример использования встроенной переменной $args
вместо блока param
.
$scriptBlock = {
$output = & xcopy $args 2>&1
return $output
}
$path1 = "C:\My Folder"
$path2 = "C:\My Folder 2"
"hello world" | Out-File -FilePath "$path1\file.txt"
$job = Start-Job -scriptblock $scriptBlock -ArgumentList $path1, $path2
Wait-Job $job
Receive-Job $job