我不明白发生了什么。
我正在尝试从一个目录和另一个目录中复制和粘贴dll。
gci -path $FromPath -Include ("*.dll", "*.pdp") | ? {$_.Name -match "appMaskA|appMaskB|appMaskC"} | foreach{Copy-item $_.Fullname -destination $ToPath -force}
现在该命令适用于我所拥有的一个功能,但不适用于此功能......
现在,此命令正在将dll移动到其他服务器。不确定为什么它不起作用。
如果它不起作用,它应该抛出异常。顺便说一句,我确实在try catch中包装了那个命令?我应该抓住一个特定的例外吗?
答案 0 :(得分:1)
你的$ ToPath是什么样的?如果您的代码包含在try / catch中,请将 -ErrorAction Stop 参数添加到复制语句中,因为默认值将继续,因此将永远不会执行catch块。
gci -path $FromPath -Include ("*.dll", "*.pdp") | ? {$_.Name -match "appMaskA|appMaskB|appMaskC"} | foreach{Copy-item $_.Fullname -destination $ToPath -force -ErrorAction Stop}
答案 1 :(得分:0)
这需要是Powershell还是您可以通过BASH / CLI脚本使用XCOPY。使用XCOPY,您可以通过
访问C DriveSERVER.DOMAIN.LOCAL / C $ /路径/到/ DLL
答案 2 :(得分:0)
也许这适合你:
gci -path $ FromPath -Include * .dll,*。pdp |其中{$ _。名称-match“appMaskA | appMaskB | appMaskC”} | Copy-item -path $ _ -destination $ ToPath -force
对于复杂和/或大型复印作业,我会使用程序robocopy。 Robocopy是Windows的一部分。执行此命令以验证其位置:
Get-Command robocopy |选择路径