【问题标题】:Copy folder with same name in Powershell在Powershell中复制具有相同名称的文件夹
【发布时间】:2018-02-17 01:53:38
【问题描述】:

我想将文件夹子文件夹和文件从源复制到目标,例如D:\WIP\letscD:\WIP\letsc1。请注意,目标子文件夹与源文件夹同名。到目前为止我有这个,但它在第 4 行失败了。

从代码的第三行开始,它会在目的地的 $CreateFolderPath 下找到的任何内容创建一个目录,然后它应该将相同的文件夹复制到目的地。

$CreateFolderPath = Get-ChildItem -Path "D:\WIP\letsc" 
foreach ($directory in $CreateFolderPath) {
New-Item -Path D:\WIP\letsc1\$directory -ItemType Directory -force
Copy-Item -recurse $directory -Destination D:\wip\letsc1\$directory -Force
}

为简化情况,应将D:\WIP\Letsc\ECBREG64 复制到D:\WIP\LetsC\ECBREG64\ECBREG64

我是 powershell 的新手,所以如果我的要求有点偏执,请原谅。

【问题讨论】:

    标签: powershell-4.0


    【解决方案1】:

    $Directory 这里将是一个对象,其中包含fileinfodirectoryinfo 的所有属性和方法。

    您可以通过$CreateFolderPath | Get-Member 查看各个输出类型的所有可能属性和成员,以便您可以使用其中的相关项。

    对于您的问题,您在复制时需要文件/目录的全名,在创建文件夹时需要 BaseName。

    $CreateFolderPath = Get-ChildItem -Path "D:\WIP\letsc" 
    foreach ($directory in $CreateFolderPath) {
    New-Item -Path "D:\WIP\letsc1\$($directory.BaseName)" -ItemType Directory -force
    Copy-Item -recurse $directory.FullName -Destination "D:\wip\letsc1\$($directory.BaseName)" -Force
    }
    

    【讨论】:

    • 非常感谢这项工作。从未想过 .fullname 和 .basename 属性。
    • 您可以将此标记为答案并关闭线程,这将有助于其他人。
    • 谢谢 Prasoon 我做了。
    猜你喜欢
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2013-04-12
    • 2013-10-10
    • 2016-02-16
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多