Board logo

标题: 求助:如何以數字重命名所有文件 [打印本页]

作者: buddiyar     时间: 2006-7-23 11:29    标题: 求助:如何以數字重命名所有文件

我經常從網上收藏一些精美的壁紙
也沒有仔細的整理過
現在想用批處理的方法以數字重命名
我自己也嘗試著編寫但沒成功

問題如下:
1.我不知道這些圖片總數量多少
2.其中有部分圖片名稱已經為數字
3.有些圖片名稱中含有空格

請教高手和眾兄弟幫忙!!
作者: fastslz     时间: 2006-7-23 11:52
好像也没必要,看图软件都可以批量重命名
XP环境的话,全部选中/重命名就ok了
作者: buddiyar     时间: 2006-7-23 12:49
倒是可以用acd see的啦
只是以後我還會不定期增加圖片的
到時侯還得運行它 再批量重命名
感覺很麻煩的
不如自己作個批處理雙擊運行來得快啊 
作者: namejm     时间: 2006-7-24 22:32
  如果对要重新命名的文件没有顺序方面的要求,下面的代码可以解决问题(以修改jpg格式的图片文件名为例):
@echo off
set num=0
setlocal enabledelayedexpansion
for /f %%i in ('dir /b "保存图片的文件夹\*.jpg"') do (
    set /a num+=1
    ren %%i !num!.jpg
)
  类似的讨论请看:

求助!怎样给一组文件的文件名加上序号(1,2,3...)?
http://www.cn-dos.net/forum/viewthread.php?tid=21240&fpage=1&highlight=%E6%96%87%E4%BB%B6%E5%90%8D

[ Last edited by namejm on 2006-7-24 at 22:38 ]
作者: 无奈何     时间: 2006-7-24 23:42
这是我以前写的一个脚本,放到 sedto 里选中文件后调用。曾经做过一个叫 sedto+ 小玩意,是一些批处理组成的能完成许多方便操作的小东西,这是其中的一个功能,但一直苦于没有时间完善、整理所以也就没有贴出来。试试是否顺手。当然此种方式调用脚本会有一些无法解决的限制不做深度讨论了。

  Quote:

  1. @echo off
  2. set /a i=1
  3. if exist "%~dp1%i%%~x1" (
  4.         if /i "%~nx1" NEQ "%i%%~x1" set /a j=0&&goto loop2
  5.         )
  6. ren "%~1" "%i%%~x1"
  7. if "%~2" == "" goto end

  8. :loop1
  9. set /a i=i+1
  10. shift
  11. if "%~1" == "" goto end
  12. if exist "%~dp1%i%%~x1" (
  13.         if /i "%~nx1" NEQ "%i%%~x1" set /a j=0&&goto loop2
  14.         )
  15. ren "%~1" "%i%%~x1"
  16. goto loop1

  17. :loop2
  18. set /a j=j+1
  19. if exist "%~dp1%i%(%j%)%~x1" (
  20.         if /i "%~nx1" NEQ "%i%(%j%)%~x1" goto loop2
  21.         )
  22. ren "%~1" "%i%(%j%)%~x1"
  23. set /a j=0
  24. goto loop1

  25. :end
  26. set i=
  27. set j=
        无奈何发表于    2006-07-24  23:30