powershell Copy-Item 路径中的非法字符
powershell Copy-Item Illegal characters in path
我在尝试执行 PowerShell 脚本时从 TeamCity 收到以下错误。
Illegal characters in path.
+ CategoryInfo : NotSpecified: (:) [Copy-Item], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co
mmands.CopyItemCommand
下面是我调用的脚本块...
$xcopyFolderBlock =
{
$destFolder = ($args[0] | out-string)
$sourceFolder = $args[1]
# See what value was passed in to the script block
write-host "destFolder inside xcopyFolder code block: " $destFolder
write-host "sourceFolder inside xcopyFolder code block: " $sourceFolder
Copy-Item $sourceFolder $destFolder -force -recurse -verbose
}
我是这样称呼它的...
Invoke-Command -ComputerName $web1Name -ScriptBlock $xcopyFolderBlock -ArgumentList(, $web1FolderServices, $nasFolderServices)
我的 TeamCity 日志显示脚本块中写入主机调用的这些值...
destFolder inside xcopyFolder code block: \\s1-bridge-web1\BridgeWebServices\Prod\MileageCalculator\v1.1.31\Services
sourceFolder inside xcopyFolder code block: \\s1-nas-1\software_dev\build\Prod\build_user\MileageCalculator\Services\*
好的,我知道了。问题出在你在参数列表中的昏迷,这里:
-ArgumentList(, $web1FolderServices, $nasFolderServices)
因此你必须这样做:
($args[0] | out-string)
所以如果你这样做,它会起作用:
Invoke-Command -ComputerName $web1Name -ScriptBlock $xcopyFolderBlock -ArgumentList($web1FolderServices, $nasFolderServices)
还有这个:
$xcopyFolderBlock =
{
$destFolder = $args[0]
$sourceFolder = $args[1]
# See what value was passed in to the script block
write-host "destFolder inside xcopyFolder code block: " $destFolder
write-host "sourceFolder inside xcopyFolder code block: " $sourceFolder
Copy-Item $sourceFolder $destFolder -force -recurse -verbose
}
我在尝试执行 PowerShell 脚本时从 TeamCity 收到以下错误。
Illegal characters in path.
+ CategoryInfo : NotSpecified: (:) [Copy-Item], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co
mmands.CopyItemCommand
下面是我调用的脚本块...
$xcopyFolderBlock =
{
$destFolder = ($args[0] | out-string)
$sourceFolder = $args[1]
# See what value was passed in to the script block
write-host "destFolder inside xcopyFolder code block: " $destFolder
write-host "sourceFolder inside xcopyFolder code block: " $sourceFolder
Copy-Item $sourceFolder $destFolder -force -recurse -verbose
}
我是这样称呼它的...
Invoke-Command -ComputerName $web1Name -ScriptBlock $xcopyFolderBlock -ArgumentList(, $web1FolderServices, $nasFolderServices)
我的 TeamCity 日志显示脚本块中写入主机调用的这些值...
destFolder inside xcopyFolder code block: \\s1-bridge-web1\BridgeWebServices\Prod\MileageCalculator\v1.1.31\Services
sourceFolder inside xcopyFolder code block: \\s1-nas-1\software_dev\build\Prod\build_user\MileageCalculator\Services\*
好的,我知道了。问题出在你在参数列表中的昏迷,这里:
-ArgumentList(, $web1FolderServices, $nasFolderServices)
因此你必须这样做:
($args[0] | out-string)
所以如果你这样做,它会起作用:
Invoke-Command -ComputerName $web1Name -ScriptBlock $xcopyFolderBlock -ArgumentList($web1FolderServices, $nasFolderServices)
还有这个:
$xcopyFolderBlock =
{
$destFolder = $args[0]
$sourceFolder = $args[1]
# See what value was passed in to the script block
write-host "destFolder inside xcopyFolder code block: " $destFolder
write-host "sourceFolder inside xcopyFolder code block: " $sourceFolder
Copy-Item $sourceFolder $destFolder -force -recurse -verbose
}