【问题标题】:powershell Copy-Item Illegal characters in pathpowershell Copy-Item 路径中有非法字符
【发布时间】:2016-04-15 12:39:47
【问题描述】:

尝试执行 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 日志显示来自脚本块中 write-host 调用的这些值...

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\\*

【问题讨论】:

    标签: powershell copy-item


    【解决方案1】:

    好的,我想通了。问题在于参数列表中的昏迷,这里:

    -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 
    } 
    

    【讨论】:

    • 是的!这消除了错误,但文件没有从源复制到目标。日志中没有错误。感谢您的帮助。
    • Get-ChildItem $sourceFolder看看文件夹里有没有东西
    • 我从 TeamCity 收到以下错误...访问被拒绝 [10:34:56][步骤 10/16] + CategoryInfo : PermissionDenied: (\\s1-nas-1\soft. ..lator\Servi [10:34:56][Step 10/16] ces\:String) [Get-ChildItem], UnauthorizedAccessException [10:34:56][Step 10/16] + FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft。 Powe [10:34:56][步骤 10/16] rShell.Commands.GetChildItemCommand
    • 你的问题来了,你不能从那里访问网络共享。尝试为您的副本项目提供 -Credential 选项。然而,最好的方法是临时映射网络驱动器并使用它们来复制
    • 我尝试映射驱动器,但找不到。恐怕我不能再花时间试图解决这个问题了。我会回去做一个简单的xcopy。再次感谢。
    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 2015-04-02
    • 2014-04-10
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多