Board logo

标题: [文件操作] 求助批处理为同名不同后缀的文件顺序添加指定名称前缀 [打印本页]

作者: 小白来了    时间: 2024-4-12 20:39     标题: 求助批处理为同名不同后缀的文件顺序添加指定名称前缀

例如目录内有:
123.txt 123.docx 123.xls
666.txt 666.docx 666.xls
大哥.txt 大哥.docx 大哥.xls
二哥.txt 二哥.docx 二哥.xls
等等同名称不同后缀的文件!

想实现打开bat后可以选择,
选择1则将目录内同名不同后缀文件名称前面加上:张三-、李四-、王五-、
选择2则在前面加上:六六-、七七-、叭叭-
选择3则在前面加上:蛋蛋-、弟弟-、妹妹-
同名不同后缀文件 前缀只加一次就行!
选择1时实现:
张三-123.txt 张三-123.docx 张三-123.xls
李四-666.txt 李四-666.docx 李四-666.xls

大佬大来帮帮忙~

祝大家周末愉快~
作者: terse    时间: 2024-4-12 22:53

本帖最后由 terse 于 2024-4-13 08:00 编辑

修正获取文件方式和文件序列问题,这里还是DIR好一点
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p num=选择输入1,2,3:
  3. cls
  4. if !num! equ 1 (
  5.    set #1=张三
  6.    set #2=李四
  7.    set #3=王五
  8.    goto :next
  9. ) else  (
  10.    if !num! equ 2 (
  11.       set #1=六六
  12.       set #2=七七
  13.       set #3=八八
  14.       goto :next
  15.    ) else (
  16.      if !num! equ 3 (
  17.         set #1=丹丹
  18.         set #2=滴滴
  19.         set #3=美美
  20.         goto :next
  21.     )
  22.    )
  23. )
  24. echo 没按指定选择输入(1,2,3)
  25. pause
  26. exit
  27. :next
  28. for /f "tokens=*" %%F in ('dir /b /a-d') do (
  29.     if "%%~nxF" neq "%~nx0" if not defined _%%~nF (
  30.         set /a "n+=1
  31.         set "_%%~nF=!n!"
  32.         set file_!n!="%%~xnF"
  33.     ) else (
  34.         for %%i in ("!_%%~nF!") do set file_%%~i=!file_%%~i! "%%~xnF"
  35.     )
  36. )
复制代码
拖入文件
  1. @echo off&setlocal enabledelayedexpansion
  2. if "%~1" == "" exit
  3. set /p num=选择输入1,2,3:
  4. cls
  5. if !num! equ 1 (
  6.    set #1=张三
  7.    set #2=李四
  8.    set #3=王五
  9.    goto :next
  10. ) else  (
  11.    if !num! equ 2 (
  12.       set #1=六六
  13.       set #2=七七
  14.       set #3=八八
  15.       goto :next
  16.    ) else (
  17.      if !num! equ 3 (
  18.         set #1=丹丹
  19.         set #2=滴滴
  20.         set #3=美美
  21.         goto :next
  22.     )
  23.    )
  24. )
  25. echo 没按指定选择输入(1,2,3)
  26. pause
  27. exit
  28. :next
  29. for %%F in (%*) do (
  30.     if "%%~nxF" neq "%~nx0" if not defined _%%~nF (
  31.         set /a "n+=1
  32.         set "_%%~nF=!n!"
  33.         set file_!n!="%%~xnF"
  34.     ) else (
  35.         for %%i in ("!_%%~nF!") do set file_%%~i=!file_%%~i! "%%~xnF"
  36.     )
  37. )
  38. for /l %%i in (1,1,!n!) do for %%a in (!file_%%i!) do echo ren "%%~nxa" "!#%%i!-%%~nxa"  !#%%i!
  39. pause
复制代码

作者: 小白来了    时间: 2024-4-12 23:08

回复 2# terse


    感谢大佬!牛逼!谢谢大佬!
作者: 小白来了    时间: 2024-4-13 00:19

回复 2# terse


    大佬,如果目录内有了新文件,我想只处理新文件,拖动进bat,然后打开bat后选择数字,只在拖动进bat的文件前面加上指定数字的前缀名称!
应该怎样添加代码呢?




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