[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
这肯定要变的啊...

按照a.txt的顺序:

2.jpg 要改成 1.jpg
1.jpg 要改成 2.jpg
a.jpg 要改成 3.jpg
5ww.jpg 要改成 4.jpg
....

注意,原来的2.jpg不同现在的2.jpg了,因为根据a.txt,要改成1.jpg...依此类推
所以,结果就是对的了。不是么?
静水流深...

TOP

好热闹,
我来说两句。
其实我们把a.txt的内容加上行号就可以很好的说明问题了
其实 梦想种子 的意思就是以行号重命名文件,18楼的代码也确实达到如此功效。
而more的意思好像是:
 以16个文件为例
  若有2.jpg则不能重命名2.jpg ..........
    若有10.jpg则不能重命名10.jpg ..........
    .....................
个人认为这种思路是最理想的。
技术问题请到论坛发帖求助!

TOP

好热闹,
我来说两句。
其实我们把a.txt的内容加上行号就可以很好的说明问题了
其实 梦想种子 的意思就是以行号重命名文件,18楼的代码也确实达到如此功效。
而more的意思好像是:
 以16个文件为例
  若有2.jpg则不能重命名2.jpg ..........
    若有10.jpg则不能重命名10.jpg ..........
    .....................
个人认为这种思路是最理想的。


是的,我以为楼主的原意是这样的(虽然并不是),不过我的代码可达到了这个效果喔.

TOP

33楼

呵呵。但是你的代码统计了文件总数,同样不合题意啊。
技术问题请到论坛发帖求助!

TOP

我的有错误,改正了,不过以前的测试文件比较规则,所以可以运行。思路是和more的一样。

TOP

哈哈,如果没有23楼的回复,我也不会贴出25楼的代码的,所以啊,正如我在22楼所说的,还没有符合题意的代码,依然在期待中........................

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4. set /a n+=1
  5. call :check "%%i"
  6. )
  7. pause&exit
  8. :check
  9. if defined %~n1 (set /a n-=1&goto :eof)
  10. if exist !n!.jpg (
  11. set !n!=OK
  12. set /a n+=1
  13. goto check
  14. ) else (
  15. ren %1 !n!.jpg
  16. )
复制代码
1

评分人数

静水流深...

TOP

哈哈哈哈,37楼 和我的代码一模一样了。
哈哈。。。。
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do call :loop "%%a"
  3. pause
  4. :loop
  5. set /a n+=1
  6. if exist "%n%.jpg" set .%n%=a&goto loop
  7. if not defined .%~n1 ren "%~1" "%n%.jpg"&set .%n%=a
  8. goto :eof
复制代码
技术问题请到论坛发帖求助!

TOP

回复 38楼 的帖子

你逻辑顺序比较好,所以简短很多。
静水流深...

TOP

经测试37楼成功,38楼不成功,原因如下:
这是a.txt的部分内容:
2.jpg
1.jpg
a.jpg
5ww.jpg
c.jpg
当call :loop 2.jpg;当n加到4的时候出错,
if exist "4.jpg" set .4=a&goto loop   ==>这句不执行
if not defined .2 ren "%~1" "4.jpg"&set .4=a    ==>这句也不执行
goto :eof    ==>一直未定义.4
所以出错

TOP

是啊,漏了一句。else set /a n-=1
:
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do call :loop "%%a"
  3. pause
  4. :loop
  5. set /a n+=1
  6. if exist "%n%.jpg" set .%n%=a&goto loop
  7. if not defined .%~n1 (ren "%~1" "%n%.jpg"&set .%n%=a) else set /a n-=1
  8. goto :eof
复制代码
2

评分人数

技术问题请到论坛发帖求助!

TOP

返回列表