【问题标题】:Copy-Item is not working复制项目不起作用
【发布时间】:2016-10-13 00:43:49
【问题描述】:

我有一个脚本,它正在查找一些文件并复制它们。这是 psake 构建脚本的一部分。

命令是:

Get-ChildItem -Path "$sourceFolder" -Include "*.ispac" -Recurse `
    | Select-Object -ExpandProperty FullName `
    | Copy-Item -Destination "$caseFolder\" -Force -Verbose

当我执行这个时,我得到这个消息:

VERBOSE: Performing the operation "Copy File" on target 
"Item: C:\Source\TestSssisOne.ispac 
Destination: C:\Destination\TestSssisOne.ispac".

这肯定看起来像复制的文件。但他们不是。没有错误。如果我将此命令复制到 ISE 并设置变量,则复制​​没有问题。我试图手动复制一个带有显式路径的文件。同样,在脚本中它不会复制,但在 PS 控制台或 ISE 中它会。

我不知道可能是什么问题。我在 psake 脚本中使用了 Copy-Item。事实上,我将上面的代码复制到了以后的任务中,它可以工作了!在它不起作用的任务中,我正在调用 msbuild 来构建解决方案。

任何见解都值得赞赏!

【问题讨论】:

  • 首先想到的是:权限。屏蔽或丢弃错误消息。复制后删除其他地方的文件......从你发布的内容来看,这就是我能想到的。如果您对执行脚本的服务器具有完全访问权限,我的第一个操作是获取 procmon 跟踪并查找错误。如果这不能解决问题,请在脚本中设置 PSDebug 并尝试缩小范围。

标签: powershell psake


【解决方案1】:

像这样修改你的代码

 Get-ChildItem -Path "$sourceFolder" -Include "*.ispac" -Recurse -File | foreach{Copy-Item $_.FullName -Destination (("$caseFolder\") + $_.Name)   -Force -Verbose }

【讨论】:

  • 这行得通!任何想法为什么这有效而普通的 Copy-Item 无效?
猜你喜欢
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多