Powershell 函数 copy-item error-exception 有 2 个参数
Powershell functions copy-item error-exception with 2 parameters
这是我的问题;
$source = "\Somewhere\Overtherainbow\something.exe"
$destinationSource = "C:\temp"
Function MyCopyFunction([string]$from, [string]$to)
{
$src= $source+$from
$dest = $destinationSource+$to
Copy-Item -Path $src -Destination $dest -Recurse
}
Function MyFunction([string]$p1, [string]$p2)
{
MyCopy($p1, $p2)
}
switch("1"){
"1" {
MyFunction("Dir1","Dir2") break;
}
}
简单吧?
为什么当使用 2 个参数调用“MyCopyFunction(p1,p2)”时,它会抱怨第二个参数不存在。但是,如果我将“MyCopyFunction($p1)”转换为只有 1 个参数而不是两个参数并手动提供 -Destination 值,则没有问题这里问题的根源是什么?
这里是例外....
复制项目 -Path $from -Destination $to -Recurse
CategoryInfo:ObjectNotFound:(:String)[Copy-Item],ItemNotFoundExcptionFullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
主要问题就在这里,
MyCopyFunction(p1,p2)
当你这样调用函数时,PowerShell treats the input as a single array containing two elements and pass it positionally to the first variable(In this case it's $from
)。取而代之的是,您应该将调用站点更改为 MyCopyFunction "Dir1" "Dir2"
以使其工作。
这是我的问题;
$source = "\Somewhere\Overtherainbow\something.exe"
$destinationSource = "C:\temp"
Function MyCopyFunction([string]$from, [string]$to)
{
$src= $source+$from
$dest = $destinationSource+$to
Copy-Item -Path $src -Destination $dest -Recurse
}
Function MyFunction([string]$p1, [string]$p2)
{
MyCopy($p1, $p2)
}
switch("1"){
"1" {
MyFunction("Dir1","Dir2") break;
}
}
简单吧? 为什么当使用 2 个参数调用“MyCopyFunction(p1,p2)”时,它会抱怨第二个参数不存在。但是,如果我将“MyCopyFunction($p1)”转换为只有 1 个参数而不是两个参数并手动提供 -Destination 值,则没有问题这里问题的根源是什么?
这里是例外.... 复制项目 -Path $from -Destination $to -Recurse CategoryInfo:ObjectNotFound:(:String)[Copy-Item],ItemNotFoundExcptionFullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
主要问题就在这里,
MyCopyFunction(p1,p2)
当你这样调用函数时,PowerShell treats the input as a single array containing two elements and pass it positionally to the first variable(In this case it's $from
)。取而代之的是,您应该将调用站点更改为 MyCopyFunction "Dir1" "Dir2"
以使其工作。