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

[文件操作] 图片批量重命名的批处理为何把某些图片重复改名?

[已解决]下面是本人仿编的一段“批量改图片文件名”的代码,发现有一点小问题,恳请各位指正!!
    @echo off
    set num=0
    for %%i in (*.jpg) do call :rn "%%i"
    echo 成功!
    pause
    :rn
        set fn=%~1
        set /a num+=1
        ren %1 img%num%.jpg

[ 本帖最后由 tv5188 于 2010-4-28 07:33 编辑 ]

回复 2楼 的帖子

谢谢!!fn确实没用,%1是接受的参数,用它没有问题。
我出的问题是,改名到最后一个都没问题,当完成时“img1.jpg”又被改了,然后才完成。也就是说for多循环了一次才完!

TOP

回复 4楼 的帖子

谢谢!这段代码没试过,不过感觉是对的,因为do ( ),我原先仿的就是这样的,只不过是批量去掉空格。只是我仿编的出的问题的机制还是不明白!

TOP

回复 5楼 的帖子

我在win7下处理5张图片时,没错。当较多时,如50张时,运行批处理后,没有img1.jpg,再运行有img1.jpg 但少了另一个(如img17.jpg,当然总的图片数没错)。再运行,缺的那一个又变了。(win7环境)

TOP

回复 7楼 的帖子

强!有道理,学习了,看来还是要用'dir',只是我那段代码问题出在哪里呢?

TOP

回复 10楼 的帖子

本帖的核心问题是:在利用CALL语句时,FOR好像多循环了一次。

TOP

返回列表