[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4. set /a n+=1
  5. (ren !n!.jpg _!n!.jpg
  6. ren _%%i !n!.jpg||(ren %%i !n!.jpg)) 2>nul
  7. )
复制代码
如果文件名只含有中英数三种字符的话,这样就可以了吧。
1

评分人数

静水流深...

TOP

回复 22楼 的帖子

用这个BAT生成JPG:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. del /q *.jpg
  5. for /f "delims=" %%i in (a.txt) do (
  6. set /a n+=1
  7. echo !n!>%%i
  8. )
  9. pause
复制代码
这样每个JPG文件内容中都会有一个数字,是按照a.txt中文件名排列的序号。

然后执行重命名的BAT,就可以检查是否对号命名了(若是,改后文件名与该JPG里的数字相同)。

经逐一检查,5楼和18楼的都能严格按照a.txt中的文件名排序对号命名的。

[ 本帖最后由 梦想种子 于 2008-6-15 14:25 编辑 ]
静水流深...

TOP

回 25 楼

我测试的结果却完全不相同,你真的检查过了吗????????????
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b *.jpg') do (
  4. set /p t=<%%i
  5. set /p=!t! %%~ni <nul
  6. if !t! == %%~ni (echo Yes) else echo No
  7. )
  8. pause
复制代码
本来是手工检查的,没有错。
后来再写了个BAT,检查依然无误...

我环境是WIN XP PRO + SP2
静水流深...

TOP

回复 27楼 的帖子

我运行的结果是这个:

以下为更名前的文件及对应的内容
2.jpg     1
1.jpg     2
a.jpg     3
5ww.jpg     4
c.jpg     5
f.jpg     6
rty.jpg     7
3.jpg     8
11.jpg     9
b.jpg     10
6.jpg     11
e.jpg     12
8.jpg     13
111.jpg     14
7.jpg     15
30.jpg     16
请按任意键继续. . .

以下为18楼的代码更名后的文件及对应的内容

1.jpg     1
2.jpg     2
3.jpg     3
4.jpg     4
5.jpg     5
6.jpg     6
7.jpg     7
8.jpg     8
9.jpg     9
10.jpg     10
11.jpg     11
12.jpg     12
13.jpg     13
14.jpg     14
15.jpg     15
16.jpg     16
请按任意键继续. . .

证明18楼代码没有问题。

我再把代码换成5楼的,结果还是上面的结果。所以5楼代码没有错。
究竟是怎么回事?有没有第三个人试试?
静水流深...

TOP

这肯定要变的啊...

按照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

  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

回复 38楼 的帖子

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

TOP

返回列表