Powershell复制到-如果存在目标目录,则复制到现有目录中

加夫布拉达斯

是的,我有一个简单的Copy-Item脚本可以将文件从一个目标文件夹复制到另一个目标文件夹。

releasecode.ps1

[CmdletBinding()]
param(
    [Parameter(Mandatory=$true)]
    [string]$source, 
    [Parameter(Mandatory=$true)]
    [string]$destination
) 
Process {
    Copy-Item -Path $source -Destination $destination -Recurse -Force

我正在releasecode.ps1使用以下命令行运行

。\ releasecode.ps1-源“ C:\ test \ from”-目标“ C:\ test \ to”

from文件夹具有以下结构:

.
├── from
├── stain.txt
├── test1.txt
├── folder
|   ├── test2.bmp

正确复制到(在第一个副本上):

.
├── to
├── stain.txt
├── test1.txt
├── folder
|   ├── test2.bmpthe 

如果我之后直接重新运行它,该from文件夹将被创建为“ to”中的目录,而不仅仅是覆盖现有结构:

.
├── to
├── stain.txt
├── test1.txt
├── folder
|   ├── test2.bmp
├── from
|   ├── stain.txt
|   ├── test1.txt
|   └── folder
|       ├── test2.bmp

to如果文件和文件夹当前存在,如何覆盖现有目录结构。

更多信息

  • 在Windows Box上运行

  • $PSVersionTable

在此处输入图片说明

安斯加·威彻斯(Ansgar Wiechers)

您已经遇到了Copy-Item与复制源目录有关陷阱。

如果目标存在并且是文件夹,则cmdlet会将源复制目标。

复制项目C:\ src \ a C:\ dst \ b-
递归

C:\ C:\ ├─dst├─dst 
| └─b| └─b 
└─src| └─一个
  └─a⇒|     ├─bar.txt 
    ├─bar.txt|     └─baz.txt 
    └─baz.txt└─src 
                      └─a 
                        ├─bar.txt 
                        └─baz.txt

如果目标不存在,则cmdlet将源复制目标。

复制项目C:\ src \ a C:\ dst \ b-
递归

C:\ C:\ 
├─dst├─dst└─src| └─ b 
  └─a|   ├─bar.txt├─bar.txt⇒ 
    |   └─baz.txt 
    └─baz.txt└─src 
                      └─a 
                        ├─bar.txt 
                        └─baz.txt

在PowerShell中处理此问题的惯用方式是确保首先存在目标文件夹,然后复制源文件夹内容

if (-not (Test-Path $destination)) {
    New-Item -Type Directory -Path $destination | Out-Null
}
Copy-Item -Path $source\* -Destination $destination -Recurse -Force

或者,您可以使用robocopy,而不会出现此问题:

robocopy C:\src\a C:\dst\b /s

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Maven:将本地jar复制到目标目录

来自分类Dev

使用文件结构将所有文件从源目录复制到C#中的目标目录

来自分类Dev

Bash脚本将目录结构从源目录复制到目标目录

来自分类Dev

使用Maven将多个资源目录复制到独立的目标目录

来自分类Dev

将源目录的内容复制到名称相同但大小写不同的目标目录

来自分类Dev

将目录列表复制到目标目录的优雅方法

来自分类Dev

将文件从多个子目录复制到同一目标目录

来自分类Dev

使用gradle将源目录列表下的文件复制到目标目录

来自分类Dev

将数据从嵌套的源目录复制到目标目录

来自分类Dev

在磁盘上找到一堆随机排序的图像,然后复制到目标目录

来自分类Dev

将文件列表从grep命令复制到目标目录

来自分类Dev

Copy-Item 不会复制到正确的目标目录

来自分类Dev

将来自不同位置和名称的文件复制到一个目标目录中

来自分类Dev

将来自不同位置和名称的文件复制到一个目标目录中

来自分类Dev

使用PowerShell将文件从tfs versioncontrol复制到目录

来自分类Dev

使用PowerShell将文件从tfs versioncontrol复制到目录

来自分类Dev

使用 PowerShell 将文件复制到随机命名的目录

来自分类Dev

将文件列表复制到目录

来自分类Dev

将文件复制到目录?

来自分类Dev

将文件复制到最新目录

来自分类Dev

文件未复制到正确的目录

来自分类Dev

使用Powershell从多个源复制到多个目标

来自分类Dev

将mp3复制到目标目录,维护目录结构并在复制完成后删除文件

来自分类Dev

Powershell复制项目:无法将容器复制到现有叶项目上

来自分类Dev

Powershell:将父文件夹中的所有子目录和内容复制到另一个文件夹目标

来自分类Dev

如何通过groovy(gradle)将文件复制到目录如果不存在(如果存在则不复制)

来自分类Dev

如何等待所有文件并复制到目录

来自分类Dev

Python将文件复制到新目录,如果文件名已存在,则重命名

来自分类Dev

将单个文件复制到多个目录[如果存在则覆盖]

Related 相关文章

  1. 1

    Maven:将本地jar复制到目标目录

  2. 2

    使用文件结构将所有文件从源目录复制到C#中的目标目录

  3. 3

    Bash脚本将目录结构从源目录复制到目标目录

  4. 4

    使用Maven将多个资源目录复制到独立的目标目录

  5. 5

    将源目录的内容复制到名称相同但大小写不同的目标目录

  6. 6

    将目录列表复制到目标目录的优雅方法

  7. 7

    将文件从多个子目录复制到同一目标目录

  8. 8

    使用gradle将源目录列表下的文件复制到目标目录

  9. 9

    将数据从嵌套的源目录复制到目标目录

  10. 10

    在磁盘上找到一堆随机排序的图像,然后复制到目标目录

  11. 11

    将文件列表从grep命令复制到目标目录

  12. 12

    Copy-Item 不会复制到正确的目标目录

  13. 13

    将来自不同位置和名称的文件复制到一个目标目录中

  14. 14

    将来自不同位置和名称的文件复制到一个目标目录中

  15. 15

    使用PowerShell将文件从tfs versioncontrol复制到目录

  16. 16

    使用PowerShell将文件从tfs versioncontrol复制到目录

  17. 17

    使用 PowerShell 将文件复制到随机命名的目录

  18. 18

    将文件列表复制到目录

  19. 19

    将文件复制到目录?

  20. 20

    将文件复制到最新目录

  21. 21

    文件未复制到正确的目录

  22. 22

    使用Powershell从多个源复制到多个目标

  23. 23

    将mp3复制到目标目录,维护目录结构并在复制完成后删除文件

  24. 24

    Powershell复制项目:无法将容器复制到现有叶项目上

  25. 25

    Powershell:将父文件夹中的所有子目录和内容复制到另一个文件夹目标

  26. 26

    如何通过groovy(gradle)将文件复制到目录如果不存在(如果存在则不复制)

  27. 27

    如何等待所有文件并复制到目录

  28. 28

    Python将文件复制到新目录,如果文件名已存在,则重命名

  29. 29

    将单个文件复制到多个目录[如果存在则覆盖]

热门标签

归档