我似乎无法做到这一点.
我有一个c:\MyApps\Websites\MySite已经在其中运行现有网站的现有文件夹.我已经下载了最新的位c:\temp\MySite\artifacts.
当我试图运行这个
$source "c:\temp\MySite"
$destination "c:\MyApps\Websites\MySite"
copy-item $source $destination -recurse -force
Run Code Online (Sandbox Code Playgroud)
如果c:\MyApps\Websites\MySite已经存在则会尝试将其放入c:\MyApps\Websites\MySite\artifacts,但如果它尚不存在则会正确复制.不知道这里发生了什么.有什么建议?
只需使用该robocopy命令.它专为此类设计而设计.
robocopy $source $destination /E
它是随Windows 7一起提供的,所以它是一个内部命令,所以它仍然是一个'Powershell'方式,imho,但是如果你想使用copy命令,那么你非常接近,但你当前的实现抓住了source文件夹并放置它在里面target(即结果将是C:\target\source\files,而不是C:\target\files).当你想让内部target看起来像里面的时候source,你需要做:
cp C:\source\* C:\target -r -fo
请注意*,这抓住内容的的source文件夹中.如果您想target先被清除,请rm -r -fo C:\target\*在复制之前进行清除.
Powershell不处理长路径,因此如果您有长文件名或深文件夹,则无论如何都需要使用robocopy.
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |