永发信息网

批处理高手来看下。

答案:6  悬赏:40  手机版
解决时间 2021-02-07 10:23
  • 提问者网友:记得曾经
  • 2021-02-06 23:20
我的电脑D盘下有500多张图片。 但是由于都是网上。名字都太长

看起来不美观。

谁能用批处理全部重命名成1以一递增到全部图片。

吗? 例如:1 ;2;3;4;;5;6 。

本人不要软件,只需要批处理。。

高手请详细说明下。我会给高分。。
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-02-07 00:26
批处理程序:
for %%a in (*.jpg) do call :renstart "%%a" %1

:renstart
for /L %%b in (1,1,9) do rename %1 %200%%b.jpg
for /L %%b in (10,1,99) do rename %1 %20%%b.jpg
for /L %%b in (100,1,999) do rename %1 %2%%b.jpg

使用说明:
1.该批处理文件执行时带一个参数,即重命名文件时所要的前缀(中间不留空格),如a001.jpg的“a”。
eg:batren.bat 长城
2.修改了原先文件名不能有空格的缺陷。

说明解释:
1.文件主要使用了for命令,来取文件夹中的每一个jpg文件;
2.由于批处理文件只是连续执行多条命令,所以功能有限,无意中利用了系统不能有重名文件的机制;
3.有很多冗余,执行时间稍长一些,但所提的要求是能完成的;
4.call :renstart %%a %1调用后,renstart中的%1表示"%%a",而不是批处理文件的第一个参数;
5.文件限定了重命名的文件数在1000以内,如果超出,可以自己修改命令;
全部回答
  • 1楼网友:春色三分
  • 2021-02-07 05:41
代码如下,子文件夹的图片的话要难点下面的可不行: @echo off set num=0 for /f "tokens=*" %%i in ('dir /a /b d:\*.*') do set image="d:\%%i" & call :ren %%i :ren set m=%1 if not defined m goto end set /a num=%num%+1 ren %image% %num%.* goto :eof :end echo 程序处理完毕,按任意键退出。。。 & pause>nul exit
  • 2楼网友:洎扰庸人
  • 2021-02-07 04:52
这个简单,保存为bat文件,和这些jpg文件放在同一个文件夹里运行即可。 @echo off&setlocal enabledelayedexpansion for %%a in (*.jpg) do ( (set /a num+=1) (ren "%%a" "!num!%%~xa")) pause
  • 3楼网友:拾荒鲤
  • 2021-02-07 03:32
::哇 原来你也喜欢收集图片啊 我可是图片收集高手了,起码有两张DVD的图片咯 全是美女 哈哈 ::言归正传,你所需要的批处理我正好写好一个,这个批处理可以整理任意文件,只要你把批处理文件放在要整理的文件的文件夹里面,或者是旁边,按照提示运行就行,如何做BAT不用我废话了吧,下面是代码,你可以直接复制! ::你运行此批处理提示你"改后的文件名称"时,如果你只要1,2,3...500的样子 那你直接回车好了,上面提示输入后缀不可缺少 @echo off & setlocal EnableDelayedExpansion title 文件批量重命名整理 mode con cols=50 lines=25 & color 9b echo 此批处理脚本用于将此目录下的所有同类文件批量重命名 set /p start=开始整理文件请输入[Y]: set /p bak=请输入要整理的文件名后缀[如jpg]: set /p name=请输入更改后的文件名称: if "!start!"=="y" ( md newFILES for /f "delims= tokens=1" %%i in ('dir /b /s ^| find ".!bak!"') do ( set /a num+=1 copy "%%~dpxni" .\newFILES\!name!!num!.!bak! >nul cls echo.已经复制文件: echo !num!个 echo 此文件[%%~xni]已经改名为 [!name!!num!.!bak!] echo %%~xni --^> !name!!num!.!bak! >>"Files Renamed List.txt" ) ) else goto :eof echo 完成整理! PAUSE>nul
  • 4楼网友:鱼忧
  • 2021-02-07 02:18
copy *:\...(路径)\*.jpg *:\...(相同路径,或者你想要的路径)\1.jpg 这样文件出来后就是1(1),1(2)这样的了
  • 5楼网友:鸠书
  • 2021-02-07 01:24
比如你要删除c:/abc.exe文件,但它又在运行。批处理文件可以这样写: @echo off @taskkill /f /im abc.exe del c:\abc.exe
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯