如何用CMD/PowerShell复制文件夹结构并省略一级子文件夹
跳过一级子文件夹复制目录结构(CMD/PowerShell实现)
PowerShell 实现方案
通过遍历源目录下的一级子文件夹(Land、Water),将其内部的二级文件夹直接复制到目标Animals目录中,保留文件结构:
# 替换为实际的源路径和目标路径 $sourceRoot = "C:\Your\Source\Animals" $targetRoot = "C:\Your\Target\Animals" # 创建目标Animals目录(不存在则自动创建) New-Item -ItemType Directory -Path $targetRoot -Force | Out-Null # 遍历一级子目录,复制其下的所有二级文件夹到目标目录 Get-ChildItem -Path "$sourceRoot\*" -Directory | ForEach-Object { Get-ChildItem -Path $_.FullName -Directory | ForEach-Object { Copy-Item -Path $_.FullName -Destination $targetRoot -Recurse -Force } }
说明
- 第一层遍历:获取
Animals下的所有一级子目录(Land、Water) - 第二层遍历:获取每个一级子目录下的二级文件夹(Dog、Tiger等)
Copy-Item的-Recurse参数确保复制文件夹内所有文件及子结构,-Force覆盖已存在的文件/文件夹
CMD 实现方案
使用嵌套for循环遍历目录层级,结合xcopy完成复制:
@echo off :: 替换为实际的源路径和目标路径 set "sourceRoot=C:\Your\Source\Animals" set "targetRoot=C:\Your\Target\Animals" :: 创建目标Animals目录(忽略已存在的报错) mkdir "%targetRoot%" 2>nul :: 遍历Animals下的一级子目录 for /d %%i in ("%sourceRoot%\*") do ( :: 遍历每个一级子目录下的二级文件夹 for /d %%j in ("%%i\*") do ( :: 复制二级文件夹到目标Animals目录 xcopy "%%j\*" "%targetRoot%\%%~nj\" /E /I /H /Y ) )
说明
for /d:遍历指定路径下的所有目录xcopy参数说明:/E:复制所有子目录(包括空目录)/I:如果目标不存在,自动创建目录/H:复制隐藏和系统属性的文件/Y:覆盖文件时不提示确认
内容的提问来源于stack exchange,提问作者Saurabh Jain
相关产品推荐
相关产品推荐

