Board logo

标题: [文件操作] 如何用批处理将每一个文件夹的文件名称添加前缀? [打印本页]

作者: yuyu521    时间: 2020-12-19 16:15     标题: 如何用批处理将每一个文件夹的文件名称添加前缀?

如何用批处理将每一个文件夹的文件名称添加前缀;
取文件名规则:就是在文件名的前面加上文件夹名称(最后一个横杠为判别标准,或者是中文前面的名称)的前缀就好了
文件夹名称:DRCD-248-李海曼    文件名称:1-合同.pdf       想用批处理实现文件夹的前半部分前缀+文件名称   得出   DRCD-248-1-合同.pdf
                                              文件名称:2-测绘报告.pdf  想用批处理实现文件夹的前半部分前缀+文件名称   得出    DRCD-248- 2-测绘报告.pdf   
........
            DRCD-321-何思明          文件名称:1-合同.pdf       想用批处理实现文件夹的前半部分前缀+文件名称   得出    DRCD-321-1-合同.pdf
................

DRCD-322-何玉春
DRCD-323-何玉强
DRCD-331-林志勇、徐艳
DRCD-398-1-郭伯云
DRCD-398-A-郭伯新
作者: Batcher    时间: 2021-1-24 19:53

回复 1# yuyu521


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%a in (*) do (
  4.     echo 正在处理文件夹:%%a
  5.     pushd "%%a"
  6.     for /f "tokens=1-4 delims=-" %%b in ("%%a") do (
  7.         if "%%e" equ "" (
  8.             set "FolderPrefix=%%b-%%c"
  9.         ) else (
  10.             set "FolderPrefix=%%b-%%c-%%d"
  11.         )
  12.     )
  13.     for /f "delims=" %%b in ('dir /b /a-d *.pdf') do (
  14.         ren "%%b" "!FolderPrefix!-%%b"
  15.     )
  16.     popd
  17. )
复制代码

作者: qixiaobin0715    时间: 2021-1-25 09:20

回复 1# yuyu521
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%a in (*) do (
  4.     set "str=%%a"
  5.     set "str=!str:-= !
  6.     for %%b in (!str!) do set "str=%%a"&set "str=!str:-%%b=!"
  7.     for /f "delims=" %%c in ('dir /b /a-d "%%a\*"') do ren "%%a\%%c" "!str!-%%c"
  8. )
  9. pause
复制代码

作者: qixiaobin0715    时间: 2021-1-27 08:48

上面代码有局限性,不能处理最后一个横杠后面含有空格、英文逗号和分号的文件夹名。




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