jeo009 发表于 2025-3-29 16:37

根据图片名称一键新建文件夹并将图片分别移动到文件夹

本帖最后由 苏紫方璇 于 2025-3-31 11:24 编辑

最近做的重复性工作有点多,有用DeepSeek做了两个bat
---------------------------------------------------------------
一:再同一文件夹内根据文件名称批量新建文件夹并分别将图片移动到对应文件夹内(用“_”作为分隔符,分割字符串,取第一部分作为文件夹名)
这个码会报风险,不知道啥原因,有懂的帮忙优化下

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

for %%i in (*.jpg) do (
    set "fullname=%%~ni"
    set "folder=!fullname:_= !"
    set "folder=!folder:= !"
    for /f "tokens=1*" %%a in ("!folder!") do (
      md "%%a" 2>nul
      move "%%i" "%%a\"
    )
)
echo 分类完成,按任意键退出
pause

二:批量替换文件名相同的某一部分例:同一个文件夹内有以下四个文件[“@@@”psd文件“@@@_画板 1 副本”jpg文件“@@@内包装”psd文件“@@@组合”psd文件]将上面文件名中“@@@”替换为我想要替换的名字
@echo off & setlocal enabledelayedexpansion
title 精准文件名替换器 v2025.3.29

:: 配置区
set /p target=■ 输入需替换的局部文字(如"毛囊型"):
set /p newtext=■ 输入新文字(如"护理配方"):

:: 核心替换引擎
set count=0
for %%F in (*.*) do (
    set "name=%%~nF"
    set "ext=%%~xF"
    set "newname=!name:%target%=%newtext%!"

    if not "!newname!"=="!name!" (
      if exist "!newname!!ext!" (
            set "v=1"
            :retry
            set "tempname=!newname!_v!v!!ext!"
            if exist "!tempname!" (
                set /a v+=1
                goto retry
            )
            ren "%%F" "!tempname!"
      ) else (
            ren "%%F" "!newname!!ext!"
      )
      set /a count+=1
      echo 已更新: "%%F" → "!newname!!ext!"
    )
)

:: 操作报告
echo.
echo █ 执行时间:2025-03-29 14:53
echo █ 修改文件:%count% 个
echo █ 操作路径:%cd%
pause

新手第一次发技术性的贴子自己测试了下效果还不错,分享给大家!!!
不会发图片就文字描述下吧!
附上成品:

https://jeo009.lanzouo.com/b00uz12oji
密码:dfni

六度 发表于 2025-3-29 20:29

前几天写了一个平均分配图片到文件夹:lol
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: 获取当前文件夹名称
for %%A in ("%CD%") do set "folder_prefix=%%~nxA"

set count=0
set folder_num=1

:: 处理带特殊字符的文件名
for /f "delims=" %%f in ('dir /b /a-d *.jpg *.png *.gif *.jpeg *.bmp 2^>nul') do (
    if !count! equ 30 (
      set /a folder_num+=1
      set count=0
    )
   
    :: 生成动态目录名(根据当前目录名称)
    set "target_dir=!folder_prefix!!folder_num!"

    :: 创建目录并移动文件
    if not exist "!target_dir!" ( mkdir "!target_dir!" )
    move "%%f" "!target_dir!\" >nul 2>&1

    set /a count+=1
)
endlocal

苏紫方璇 发表于 2025-3-31 11:21

代码插入可以参考这个帖子
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)

一场荒唐半生梦 发表于 2025-3-29 16:50

多谢分享 {:301_997:}

mryouan 发表于 2025-3-29 19:00

感谢分享

dazebat 发表于 2025-3-29 19:09

用AI写bat脚本必须万分小心……因为涉及到文件操作的语句,很不严谨。不小心就把文件误操作了!我损失了大约10个G的电影……{:1_908:}

jeo009 发表于 2025-3-29 21:40

dazebat 发表于 2025-3-29 19:09
用AI写bat脚本必须万分小心……因为涉及到文件操作的语句,很不严谨。不小心就把文件误操作了!我损失了大 ...

我是测试完之后才发的,一定到新建文件夹测试

jeo009 发表于 2025-3-29 21:44

六度 发表于 2025-3-29 20:29
前几天写了一个平均分配图片到文件夹
@echo off
chcp 65001 >nul


这个也不错,简单的会点能提升不少工作效率{:1_893:}

jeo009 发表于 2025-3-31 14:30

苏紫方璇 发表于 2025-3-31 11:21
代码插入可以参考这个帖子
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thr ...

非常感谢{:1_893:}

15959337778 发表于 2025-4-21 18:42

有可以把图片全面生成文件夹吗 现在这个版本中间有数子符号或者空格就不会生成全名
页: [1] 2
查看完整版本: 根据图片名称一键新建文件夹并将图片分别移动到文件夹