これを行う 1 つの方法は、param ブロックでスクリプト ブロックを使用することです。
ファイル/フォルダー パスなど、スペースを含む引数が 1 つある場合は、単一のアイテムとして扱うために引用符で囲む必要があります。引数は、スクリプト ブロックに渡される配列です。
この例ではスクリプト ブロックを使用していますが、パラメーターの代わりにコマンドレットの-FilePath
パラメーターを使用して PowerShell スクリプトを使用することもできます。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