【发布时间】:2014-06-01 00:05:30
【问题描述】:
假设你有这个文件夹
foo
你可以在 Bash 中运行这个命令
cp -r --no-target-directory foo bar
它会创建
foo
bar # same contents as foo
然后你可以重新运行命令而不改变结果。如何使用 PowerShell 做到这一点?
【问题讨论】:
标签: powershell command-line scripting idempotent
假设你有这个文件夹
foo
你可以在 Bash 中运行这个命令
cp -r --no-target-directory foo bar
它会创建
foo
bar # same contents as foo
然后你可以重新运行命令而不改变结果。如何使用 PowerShell 做到这一点?
【问题讨论】:
标签: powershell command-line scripting idempotent
这样就可以了。它将创建 bar 文件夹,其中将包含 foo 包含的所有内容。
copy-item .\foo .\bar -recurse -force
【讨论】:
所以问题是
cp -r -fo foo bar
仅在bar 不存在且不存在时有效
cp -r -fo foo/* bar
仅当bar 存在时才有效。因此,要解决此问题,您需要在执行任何操作之前确保 bar 存在
md -f bar
cp -r -fo foo/* bar
【讨论】: