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

[文件操作] 批处理如何批量将指定扩展名的文件的名称的前10位字符命名给另一种扩展名的文件

本帖最后由 pcl_test 于 2016-11-3 15:00 编辑

批处理如何实现文件批量命名?
文件夹里有A.B两种格式的文件,A的格式为.jpg ,B的格式为.pdf,现在要把A的文件名的前10位命名给B文件,如何写代码。 求帮助

比如 :一个名为:我的图片.jpg  要把这个名字命名给一个pdf格式的文件,它们都在同一个文件夹里,

TOP

不好意思,我再说下,对应起来就根据它们在文件夹里按名称的排列来对应,它们都放在一个文件夹里,按你上面列举的,把第一个图片的名字,命名给第一个pdf. 如?张三.pdf改为:我的图片1234567.pdf  李四.pdf应改为:我的图片1234568.pdf,依此下去,不知道我说的清楚不?

TOP

[img][/img]
看看图片的对应关系,jpg和pdf数目一样,不会一个多一个少的,看看下面的代码,也许有帮助,但是运行的结果不对,找不到文件。
  1. @echo on&setlocal enabledelayedexpansion
  2. for /f %%a in ('dir *.jpg /b') do (for /f %%b in ('dir *.pdf /b') do set a=%%a&set a=!a:~0,-5!&ren %%b !a!.pdf
  3. )
  4. pause
复制代码

TOP

太感谢你了,我运行了下,我要是想取jpg的文件名的前10位,应该怎么修改代码?还有就是:下面这段代码哪里有不对的,如何修改,谢谢。
  1. @echo on&setlocal enabledelayedexpansion
  2. for /f %%a in ('dir *.jpg /b') do (for /f %%b in ('dir *.pdf /b') do set a=%%a&set a=!a:~0,10!&ren %%b !a!.pdf
  3. )
  4. pause
复制代码

TOP

非常感谢帮你们的帮助,很感激,很好,很张大。努力学习中

TOP

回复 11# CrLf
ren "!strPDF!" "%%~ni.pdf" 改成 ren "!strPDF:~,10!" "%%~ni.pdf"  你说的这段代码好像有问题。你的最爱没有问题能解决问题,很好,很强大,我改了下:ren "!strPDF!" "%%~ni.pdf" 改成 ren "!strPDF!" "!strPDF:~,10!.pdf" 不知道对不对?

TOP

返回列表