[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 8# 小白唐唐
检查你的文件名中是否含有121231
还有你这样会有文件重复的可能

TOP

回复 14# 小白唐唐
源文件名 和BAT里准备的一样的话 会是这个结果啊
ren "11.pdf" "11.pdf"
ren "12.pdf" "12.pdf"
ren "13.pdf" "13.pdf"
...

TOP

假设要处理的文件夹是D:\123 PDF文件 新文件名存入LIST.TXT
  1. @echo off&setlocal enabledelayedexpansion
  2. rem 将文件存为ANSI编码  新文件名保存入list.txt
  3. set "ph=d:\123"
  4. REM 统计 list.txt 内文件数量并赋值 如果d:\123内已经存在文件退出
  5. for /f "delims=" %%i in (list.txt) do (
  6.      if exist "!ph!\%%i" (
  7.         set str=!ph! 已存在 %%i 文件
  8.         goto :end
  9.      )
  10.      set /an+=1
  11.      set "new_file_!n!=%%i"
  12. )
  13. REM 统计 d:\123 内文件数量并赋值
  14. for /f "delims=" %%i in ('dir /b /a-d "!ph!\*.pdf"') do (
  15.      set /a m+=1
  16.      set "file_!m!=%%i"
  17. )
  18. REM 比较文件数量 这里 list.txt 的文件数少于d:\123文件数 就退出
  19. if !m! gtr !n! set str=!ph! 的文件数量与 list.txt 不符&goto :end
  20. for /l %%i in (1,1,!n!) do ren "!ph!\!file_%%i!" "!new_file_%%i!"
  21. set str=共计完成 "!ph!" 文件夹的 !n! 个文件的重命名
  22. :end
  23. echo;!str!
  24. pause
复制代码

TOP

回复 42# 小白唐唐
是的,疏忽了,开始确实用的neq判断不相等就退出,想到可能输入list不一定和实际文件数量相符,就用了GTR,
如果下面循环改N为M的话 应该也会有空值的出现
所以现在:
1,改判断那里可以gtr改为neq,两数不等就不去循环,
2,可先比较M和N, 然后选小的数进行循环;
2选1即可

TOP

返回列表