我似乎永远无法把这件事做好。
我有一个现有的文件夹c:\MyApps\Websites\MySite
已经有一个正在运行的现有网站。我已经下载了位于以下的最新版本c:\temp\MySite\artifacts
.
当我尝试运行这个时
$source "c:\temp\MySite"
$destination "c:\MyApps\Websites\MySite"
copy-item $source $destination -recurse -force
if c:\MyApps\Websites\MySite
已经存在然后它尝试将其放入c:\MyApps\Websites\MySite\artifacts
,但如果它尚不存在,它会正确复制它。不知道这里发生了什么。有什么建议么?
只需使用robocopy
命令。它是designed对于这种事情。
robocopy $source $destination /E
它是随 Windows 7 一起提供的,所以它是一个内部命令,因此它仍然是一种“Powershell”方式,恕我直言,但是如果您想使用复制命令,那么您已经非常接近了,但是您当前的实现抓住了source
文件夹并将其放入其中target
(即结果将是C:\target\source\files
, not C:\target\files
)。当你想要制作内部时target
看起来像里面source
,你需要做:
cp C:\source\* C:\target -r -fo
注意*
,这抓住了contents of the source
文件夹。如果你想target
首先要清除,只需执行rm -r -fo C:\target\*
复制之前。
Powershell 不处理长路径,因此如果您有长文件名或深层文件夹,无论如何您都需要使用 robocopy。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)