如何将目录内的多文件批量移动至其包含的子目录?
批量将目录文件移动到子目录的解决方案
Windows 环境
命令提示符(CMD)
创建批处理脚本批量操作:
@echo off for /d %%d in (*) do ( if exist "%%d\Photo" ( move "%%d\*.jpg" "%%d\Photo\" ) )
操作步骤:
- 把上面的代码保存成
move_photos.bat文件 - 将这个文件放到所有月份目录(January、February等)的上级目录
- 双击运行脚本,它会自动遍历每个目录,把里面的
.jpg文件移到对应的Photo子目录
PowerShell
用PowerShell执行更灵活的命令:
Get-ChildItem -Directory | ForEach-Object { $photoDir = Join-Path $_.FullName "Photo" if (Test-Path $photoDir) { Move-Item -Path (Join-Path $_.FullName "*.jpg") -Destination $photoDir } }
操作步骤:
- 打开PowerShell,导航到月份目录的上级目录
- 直接复制粘贴上面的命令并执行即可
Linux/macOS 环境
用Bash脚本完成批量移动:
#!/bin/bash for dir in */; do photo_dir="${dir}Photo" if [ -d "$photo_dir" ]; then mv "${dir}"*.jpg "$photo_dir"/ fi done
操作步骤:
- 把代码保存成
move_photos.sh文件 - 在终端里执行
chmod +x move_photos.sh给脚本添加执行权限 - 运行
./move_photos.sh(确保脚本在月份目录的上级目录)
内容的提问来源于stack exchange,提问作者Philo
相关产品推荐
相关产品推荐

