基于部分文件名创建文件夹并迁移文件的批处理脚本求助
解决方案
你的原始脚本使用了完整的文件名(不含扩展名)作为文件夹名称,导致创建了包含_Gocchup后缀的错误文件夹。我们需要提取文件名中第一个下划线之前的部分作为目标文件夹名,以下是修正后的批处理脚本:
@echo off setlocal enabledelayedexpansion for %%i in (*.jpg) do ( if not "%%~ni" == "organize" ( set "file_name=%%~ni" set "target_folder=!file_name:_*=!" md "!target_folder!" 2>nul move "%%~i" "!target_folder!" ) ) endlocal
关键代码说明:
setlocal enabledelayedexpansion: 启用延迟扩展,确保循环内部变量修改后能立即生效。for %%i in (*.jpg): 仅遍历当前目录下的.jpg文件,避免误处理批处理脚本本身。set "target_folder=!file_name:_*=!": 通过字符串替换,移除文件名中第一个下划线及之后的所有内容,得到正确的文件夹前缀。md "!target_folder!" 2>nul: 创建目标文件夹,若文件夹已存在则忽略错误提示。move "%%~i" "!target_folder!": 将当前文件移动到对应目标文件夹。
内容的提问来源于stack exchange,提问作者Phu
相关产品推荐
相关产品推荐

