我想将我的电脑硬盘(有两个分区)中的所有文件夹和子文件夹中的任何文件扩展名(如、、等)的所有图像复制到一个文件夹中.jpg
。.png
.gif
我总共有 250,000 张图片。
答案1
最简单的方法可能是制作一个批处理文件,它以递归方式搜索特定文件类型,并将其所有实例复制到您选择的文件夹中。此脚本应该一次为一个分区完成此任务:
for /R "C:\" %%G in (*.png *.jpg *.jpeg *.gif) do copy "%%G" "E:\allPictures\"
pause
请注意,我强烈建议您添加一个外部硬盘并将输出指向其上的文件夹。您不希望批处理脚本从其自己的输出文件夹复制。
E:\allPictures\
是输出,这就是您需要更改的内容。
将其保存为“something.bat”并执行。
解释
脚本开始从您指定的目录进行搜索。在我的示例中,我C:\
根据您的要求进行了选择。
这/R
告诉它开始以递归方式搜索所选文件夹下的每个文件夹,查找给定的文件类型:(*.png *.jpg *.jpeg *.gif)
%%G
是文件完整路径的占位符/容器。因此,如果它刚找到的文件符合请求的文件类型,它将把它提供给复制命令。
最后您将获得输出文件夹的路径。E:\allPictures\
最后pause
,您就知道什么时候完成。
希望这能回答你的问题。
祝你好运!
答案2
在 Windows 资源管理器中,搜索:
*.png OR *.gif OR *.jpg OR *.jpeg*
选择所有文件并复制到你想要的位置
答案3
你可以使用一些简单的东西,例如复制
xcopy c:\*.jpg e:\ /s
这会将 C: 驱动器中的所有 JPG 文件复制到 E: 的根目录,并在 C: 驱动器上创建 XCOPY 找到的文件夹。
您只需对不同的文件类型(例如 gif、png、tiff 或您想要合并的任何其他文件格式)重复执行此操作。
答案4
在 PowerShell 中执行此操作。
$sourcePath = 'C:\StartFolder'
$destPath = 'C:\DestFolder'
Get-ChildItem $sourcePath -Recurse -Include '*.foo', '*.bar' | Foreach-Object `
{
$destDir = Split-Path ($_.FullName -Replace [regex]::Escape($sourcePath), $destPath)
if (!(Test-Path $destDir))
{
New-Item -ItemType directory $destDir | Out-Null
}
Copy-Item $_ -Destination $destDir
}