Board logo

标题: [文件操作] 求助批处理把文件名最大的加1 [打印本页]

作者: 单车少男    时间: 2024-3-14 11:35     标题: 求助批处理把文件名最大的加1

2024年01月19日 - 收集池清单v5.XLS
2024年01月19日 - 清单v5.XLS
2024年01月19日 - 收集池清单v4.XLS
2024年01月19日 - 清单v4.XLS
2024年01月19日 - 收集池清单v3.XLS
2024年01月19日 - 清单v3.XLS


运行批处理,V5(最大的数)自动加1,成V6

怎么处理?
作者: 77七    时间: 2024-3-14 11:53

请多提供几个文件名
比如按规律填空
1 (?)
这怎么填
作者: 单车少男    时间: 2024-3-14 12:04

回复 2# 77七


    不好意思,我的问题,没表达清楚,已经修改
作者: 77七    时间: 2024-3-14 12:45

本帖最后由 77七 于 2024-3-14 12:46 编辑

回复 3# 单车少男


  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d "* - *v*.*"^|find /v "%~nx0"') do (
  5. for /f "tokens=1-3 delims=v- " %%a in ("%%~ni") do (
  6. set /a n=%%c+1000000,m=%%c+1
  7. set #"%%b"#"!n!"#"%%i"=%%a - %%bv!m!%%~xi
  8. )
  9. )
  10. for /f "tokens=1-4 delims=#=" %%a in ('set # ^|sort /r') do (
  11. if not defined _"%%~a" (
  12. ren "%%~c" "%%d"
  13. set _"%%~a"=1
  14. )
  15. )
  16. endlocal
  17. pause
复制代码

作者: 单车少男    时间: 2024-3-14 12:53

回复 4# 77七


    REN 改成 copy  可以了

新增后,打开呢,怎么搞
作者: 单车少男    时间: 2024-3-14 12:59

回复 4# 77七


    后缀xlsx,换成docx 无法用吗
作者: 77七    时间: 2024-3-14 13:07

回复 5# 单车少男


  
  1. for /f "tokens=1-4 delims=#=" %%a in ('set # ^|sort /r') do (
  2. if not defined _"%%~a" (
  3. copy "%%~c" "%%d"
  4. "%%d"
  5. timeout 2 >nul
  6. set _"%%~a"=1
  7. )
  8. )
复制代码

作者: 77七    时间: 2024-3-14 13:08

回复 6# 单车少男


   应该不影响,不行把失败的docx文件名发出来看看
作者: 单车少男    时间: 2024-3-14 13:10

回复 8# 77七


    物联截污V3.docx
    物联截污V4.docx
作者: 77七    时间: 2024-3-14 13:13

回复 9# 单车少男


   所以说我在2楼让你多发几个文件名..代码应该重写了...
作者: 单车少男    时间: 2024-3-14 13:14

回复 7# 77七


   

"%%d"

改成  start   "%%d"  怎么不能打开么
作者: 77七    时间: 2024-3-14 13:41

回复 11# 单车少男


   start "" "%%d"
作者: 单车少男    时间: 2024-3-14 13:47

回复 12# 77七


    出错的
作者: 77七    时间: 2024-3-14 14:06

回复 13# 单车少男


   
文件类型没有关联软件吗?
start "" "软件完整路径" "文件名" 试试
作者: 77七    时间: 2024-3-14 14:07

回复 9# 单车少男


  
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d "*v*.*"') do (
  5. set file=%%i
  6. for /f "delims=" %%a in ("!file:v=/!") do (
  7. set /a n=%%~na+1,m=1000000+%%~na
  8. set #"!file:v%%~nxa=!"#"!m!"=!file:%%~nxa=!!n!%%~xi
  9. )
  10. )
  11. for /f "tokens=1-3 delims=#=" %%a in ('set # ^|sort /r') do (
  12. if not defined _"%%~a" (
  13. set _"%%~a"=1
  14. cd.>"%%c"
  15. start "" "%%c"
  16. timeout 2
  17. )
  18. )
  19. endlocal
  20. pause
复制代码

作者: 单车少男    时间: 2024-3-16 10:36

回复 15# 77七


    新文件,文件大小为0,
作者: 77七    时间: 2024-3-16 10:59

  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /a-d "*v*.*"') do (
  5. set file=%%i
  6. for /f "delims=" %%a in ("!file:v=/!") do (
  7. set /a n=%%~na+1,m=1000000+%%~na
  8. set #"!file:v%%~nxa=!"#"!m!"#"!file!"=!file:%%~nxa=!!n!%%~xi
  9. )
  10. )
  11. for /f "tokens=1-4 delims=#=" %%a in ('set # ^|sort /r') do (
  12. if not defined _"%%~a" (
  13. set _"%%~a"=1
  14. copy "%%~c" "%%d"
  15. start "" "%%d"
  16. timeout 2
  17. )
  18. )
  19. endlocal
  20. pause
复制代码
回复 16# 单车少男

作者: 单车少男    时间: 2024-3-16 11:25

回复 17# 77七


    可以了,能加个好友吗?

另外文件格式能不能排除一下PDF文件,
作者: 77七    时间: 2024-3-16 11:55

回复 18# 单车少男


   代码第4行改为
  1. for /f "delims=" %%i in ('dir /b /a-d "*v*.*" ^|findstr /rviec:"\.pdf"') do (
复制代码

作者: 单车少男    时间: 2024-3-16 14:01

回复 19# 77七


    这个可以,加个好友呢
作者: 77七    时间: 2024-3-16 15:20

回复 20# 单车少男


   因为我水平十分有限,有问题站里发帖就行,遇到我不会的我也能学习下。
作者: 单车少男    时间: 2024-3-18 18:07

回复 21# 77七


    非常感谢




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