Board logo

标题: [文件操作] 【已解决】请问批处理怎么实现文件批量改名和对照列表替换文件名? [打印本页]

作者: mustforver    时间: 2022-2-20 17:20     标题: 【已解决】请问批处理怎么实现文件批量改名和对照列表替换文件名?

本帖最后由 mustforver 于 2022-2-20 23:59 编辑

现在手里有大量文件,名字都是这种格式:
4274-黑暗随从者.jpg
9279-小丑与锁鸟.jpg
10000-宝石骑士·斜绿.jpg
11200-吸血鬼妖女.jpg
…………
现在的主要任务是把所有文件改成另一串数字,我手里有一个对应的表格:
76184692        4009
46986414        4041
6368038        4044
40374923        4065
…………
其中前一列是目标文件名,后一列是现有文件名中“-”符号前的那一串数字。
然后目标格式如下:
76184692.jpg
46986414.jpg
6368038.jpg
…………
表格是csv格式的,大概有1.2w个文件,有大神能帮忙吗,先给各位大佬跪谢一个 OTL
作者: idwma    时间: 2022-2-20 17:38

  1. for /f tokens^=^1-2^ delims^=^"^, %%i in (123.csv) do ren "%%j*" "%%i.jpg"
复制代码

作者: 5i365    时间: 2022-2-20 18:29

回复 2# idwma


    我刚刚试了一下, 提示找不到文件, csv和bat都是ansi
自己做了一个示例文件
https://send.cm/d/8vO0
作者: Fit    时间: 2022-2-20 20:01

@echo off&setlocal enabledelayedexpansion
rem csv文件路径(绝对路径)
set "csv=C:\Users\Administrator.SD-20200130HORC\Desktop\1.csv"
rem 设置jpg文件夹得路径(绝对路径)
set "jpg=C:\Users\Administrator.SD-20200130HORC\Desktop\1"
cd /d %jpg%
(for /f "tokens=1,2 delims=,"  %%i in (%csv%) do (
        for /f "tokens=1,2,3 delims=-." %%a in ('dir /b /a-d *.jpg^| find "%%j"') do (               
                ren "%%a-%%b.%%c" "%%i.%%c"  >nul
        )
))&pause

先一定备份后,bat里面路径设置好,再使用!
作者: idwma    时间: 2022-2-20 20:38

回复 3# 5i365
  1. @echo off
  2. for /f tokens^=^1-2^ delims^=^"^,^  %%i in (a.csv) do ren "%%j*" "%%i.jpg"
  3. pause
复制代码

作者: 5i365    时间: 2022-2-20 20:44

本帖最后由 5i365 于 2022-2-20 20:45 编辑

回复 5# idwma


    大侠牛X, 真行了, 但是/f 后面的参数完全看不懂, 能写个PS代码吗? 对这个题, 一点头绪没有

感觉批处理和PS各有优势, 估计PS代码就没有这么精简了吧
作者: 5i365    时间: 2022-2-20 21:33

回复 5# idwma


    发现一个问题, 如果csv文件名中有空格,例如 a b.csv 把文件名, 加上""和''都不灵了
作者: idwma    时间: 2022-2-20 21:47

回复 7# 5i365
  1. @echo off
  2. for /f tokens^=^1-2^ delims^=^"^,^  %%i in ('type "a b.csv"') do ren "%%j*" "%%i.jpg"
  3. pause
复制代码
  1. powershell "ipcsv a.csv -header 'a','b'|foreach{foreach($i in dir $($_.b.trim()+'*')){ren $i $($_.a.trim()+'.jpg')}}"
复制代码

作者: mustforver    时间: 2022-2-20 23:59

感谢各位大佬,问题完美解决了
作者: cavid    时间: 2022-2-22 18:18

学习了学习了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2