You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows下如何将多文件夹中的指定文件批量复制到新文件夹(含list.txt场景)

Windows下如何将多文件夹中的指定文件批量复制到新文件夹(含list.txt场景)

嘿,我来帮你搞定Windows下的批量文件复制问题,分两种场景给你讲得明明白白👇

场景1:从层级文件夹按名称排序复制指定文件

如果你的需求是从多层嵌套的源文件夹里,把按名称升序排列的特定文件(比如你举例的file1a、file1aa、file1aaa)复制到New Folder,可以这么操作:

手动快速法(适合少量文件)

  • 打开源文件夹的最上层目录,点击顶部的「名称」列让文件按名称升序排列
  • 按住Ctrl键逐个选中你要的file1a、file1aa、file1aaa,右键复制,再打开New Folder右键粘贴就搞定了

命令行高效法(适合批量/重复操作)

用命令提示符(CMD)

假设你的源文件夹根目录是D:\Source,目标文件夹是D:\New Folder,直接在CMD里运行这条命令(记得替换成你自己的路径):

for /r "D:\Source" %f in (file1a* file1aa* file1aaa*) do copy "%f" "D:\New Folder\"

如果你的文件是特定扩展名,比如都是txt,就写成file1a.txt file1aa.txt file1aaa.txt更精准。

用PowerShell

要是你习惯用PowerShell,这条命令能帮你按名称升序筛选并复制:

Get-ChildItem -Path "D:\Source" -Recurse -Include file1a*,file1aa*,file1aaa* | Copy-Item -Destination "D:\New Folder"

如果想对每个子文件夹都取名称升序的前3个文件,就用这个脚本:

Get-ChildItem -Path "D:\Source" -Directory | ForEach-Object {
    Get-ChildItem -Path $_.FullName -File | Sort-Object Name | Select-Object -First 3 | Copy-Item -Destination "D:\New Folder"
}

场景2:通过list.txt批量复制跨文件夹的指定文件

这应该是你更关心的真实场景——手里有个list.txt,里面列了所有要复制的文件的完整路径,需要把这些分散在不同文件夹里的文件批量搬到新文件夹,这两种方法超好用:

方法1:命令提示符(CMD)

首先确保list.txt里每一行都是一个文件的绝对路径,比如:

D:\Folder1\report.txt
D:\Folder2\sub\photo.jpg
D:\Folder3\docs\data.xls

然后打开CMD,运行这条命令(替换成你自己的list路径和目标文件夹路径):

for /f "delims=" %i in (D:\your-path\list.txt) do copy "%i" "D:\New Folder\" /y

/y是为了自动覆盖目标文件夹里的重名文件,要是你想每次都确认,去掉/y就行。

方法2:PowerShell脚本

这个方法更稳妥,会帮你检查文件是否存在,还会输出复制状态:

Get-Content -Path "D:\your-path\list.txt" | ForEach-Object {
    if (Test-Path $_) {
        Copy-Item -Path $_ -Destination "D:\New Folder" -Force
        Write-Host "已成功复制:$_"
    } else {
        Write-Host "⚠️  警告:文件不存在,已跳过:$_"
    }
}

这里的-Force同样是自动覆盖重名文件,不需要的话删掉就行。

小提醒避坑

  • 所有路径尽量用绝对路径,别用相对路径,避免因为当前工作目录不对导致找不到文件
  • 确保你有源文件的读取权限和目标文件夹的写入权限
  • 如果文件路径里有空格,一定要用双引号把路径包起来,不然命令会报错

备注:内容来源于stack exchange,提问作者Cahyo Permadi

火山引擎 最新活动