找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22571|回复: 3

[文件操作] 求助批处理为同名不同后缀的文件顺序添加指定名称前缀

[复制链接]
发表于 2024-4-12 20:39:33 | 显示全部楼层 |阅读模式
例如目录内有:
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

大佬大来帮帮忙~

祝大家周末愉快~
发表于 2024-4-12 22:53:52 | 显示全部楼层
本帖最后由 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
复制代码

评分

参与人数 1技术 +1 收起 理由
小白来了 + 1 大佬牛逼

查看全部评分

 楼主| 发表于 2024-4-12 23:08:41 | 显示全部楼层
回复 2# terse


    感谢大佬!牛逼!谢谢大佬!
 楼主| 发表于 2024-4-13 00:19:18 | 显示全部楼层
回复 2# terse


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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 01:17 , Processed in 0.020384 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表