You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下如何通过CMD将148个子文件夹中的.jpg批量迁移至单文件夹?

Windows下归集所有子文件夹JPG文件的实现方法

没问题,我来帮你把这个Linux下的文件归集需求迁移到Windows环境,给你两种实用的实现方案,都是基于你提到的递归查找思路来的:

方法一:CMD批处理脚本(兼容所有Windows版本)

你已经知道用dir /S /B *.jpg来递归查找所有JPG文件,我们可以把这个命令和for循环结合起来,写成批处理脚本:

  1. 先创建一个文本文件,把下面的代码复制进去,然后保存为move_jpgs.bat:
@echo off
:: 先检查目标文件夹是否存在,不存在则创建
if not exist "Destination" md "Destination"
:: 递归查找所有JPG文件并移动到目标文件夹
for /f "delims=" %%i in ('dir /S /B *.jpg') do move /Y "%%i" "Destination"
echo 所有JPG文件已完成归集!
pause
  1. 把这个批处理文件放到你的源目录的上级文件夹(如果你的源文件夹叫source,可以把命令里的dir /S /B *.jpg改成dir /S /B source\*.jpg,这样更精准)。
  2. 双击运行即可。

说明:

  • delims=是为了处理带空格的文件名,避免文件名被拆分成多个部分;
  • /Y参数会让move命令自动覆盖目标文件夹里的同名文件,和你Linux脚本里的mv行为一致,如果不想覆盖,可以去掉/Y,这时遇到同名文件会提示确认。

方法二:PowerShell脚本(更灵活强大)

如果你的Windows版本是Win7及以上,PowerShell是更好的选择,代码更简洁且功能更丰富:

  1. 打开PowerShell,切换到你的源目录所在位置,执行下面的命令:
# 递归查找source文件夹下的所有JPG文件,移动到Destination文件夹
Get-ChildItem -Path ".\source" -Filter "*.jpg" -Recurse | Move-Item -Destination ".\Destination" -Force
  1. 如果你想做成可重复运行的脚本,创建一个move_jpgs.ps1文件,把上面的代码复制进去,右键选择“用PowerShell运行”即可。

说明:

  • -Recurse参数实现递归遍历所有子文件夹;
  • -Force参数用于自动覆盖同名文件,不需要的话可以去掉;
  • PowerShell对带特殊字符的文件名支持更好,相比批处理更稳定。

两种方法都能实现你要的效果,根据你的使用习惯选择就行~

内容的提问来源于stack exchange,提问作者F333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:08:30