将具有特定(相同)名称的子文件夹复制到目的地

问题描述 投票:0回答:1

将我的头缠在以下问题上-也试图说明我要实现的目标。

源包含名为“ import”的子文件夹,其中包含文件和/或文件夹-(仅)此“ import”文件夹应使用新的个人名称复制到目标目录,因为只能有一个同名文件夹当然。

.Source
├── FolderA
│   └── import
│       └── Attachment
│   └── log
│
├── FolderB
│   └── import
│   └── log
│
├── FolderC
│   └── import
│       └── Attachment
│   └── log

.Destination
├── import27526
│   └── Attachment
│
├── import96385
│
├── import52987
│   └── Attachment

我试图使用FOR和xcopy或robocopy在CMD中解决此问题,创建随机的目标目录。

for /f "delims=" %%A in ('dir /a:d /b /s "import"') do (xcopy /y /i /S "%%A" "C:\temp\%%~nxA%random%")

[不幸的是,它不起作用,因为来自各种“导入”源文件夹中的所有数据都被复制到单个目标目录中,而不是单个目录中。

非常感谢您的帮助!

windows batch-file copy
1个回答
0
投票

下面在Powershell中有一个简单的代码,该代码将复制包含其内容的文件夹,并在目标文件夹中添加一个数字。是您想要的东西吗?

$source = "SOURCE PATH"
$destination = "DESTINATION PATH"
$foldername = "FOLDERNAME"
$number = 0

$folders = Get-ChildItem -Path $source -Recurse | Where-Object {$_.Name -eq $foldername}
Foreach ($folder in $folders){
    $number++
    Copy-Item -Path $folder -Destination $destination -Recurse
    Rename-Item -Path "$destination\$foldername" -NewName "$foldername $Number"
}
© www.soinside.com 2019 - 2024. All rights reserved.