在Powershell中复制具有相同名称的文件夹

时间:2018-02-15 16:50:53

标签: powershell-v4.0

我想将文件夹子文件夹和文件从源复制到目标,例如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的新手所以请原谅我,如果我的要求有点偏执。

1 个答案:

答案 0 :(得分:0)

$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
}