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

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

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

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

还是不太清楚,最好举个例子说下你的需求。

TOP

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

TOP

说好的前10位呢?
你乱举例子,别人乱写代码,总后还是无法解决你的实际问题。

我的图片1234567.jpg
我的图片1234568.jpg
我的图片1234569.jpg

张三.pdf
李四.pdf
王五.pdf

我要根据什么规律把jpg和pdf文件名对应起来?

TOP

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

TOP

回复 5# kmustwxw
不太清除你的这个要求,那要是PDF多余或少于jpg文件,不就对应不上了,你这个程序主要用来干嘛?

搞技术最不爽的就是需求描述不清。。。。。。。。

TOP

你就直接把你要做的事说出来,就简单了,否则,你再喊上几个月,大家也帮补了你。

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

回复 5# kmustwxw
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. dir /b *.jpg >file_jpg.txt
  4. dir /b *.pdf >file_pdf.txt
  5. (for /f "delims=" %%i in (file_jpg.txt) do (
  6.     set /p strPDF=
  7.     ren "!strPDF!" "%%~ni.pdf"
  8. ))<file_pdf.txt
复制代码

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

回复 9# DAIC


ren "!strPDF!" "%%~ni.pdf" 改成 ren "!strPDF:~,10!" "%%~ni.pdf"
再来个我最爱的:
  1. @echo off
  2. (for %%a in (*.jpg) do (
  3.     set "name=%%~na"
  4.     setlocal enabledelayedexpansion
  5.     ren *.pdf "!name:~,10!._pdf"
  6.     endlocal
  7. )) 2>nul
  8. ren *._pdf *.pdf
复制代码

TOP

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

TOP

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

TOP

回复 13# kmustwxw


    哦是的,混乱了

TOP

ren *.pdf "!name:~,10!._pdf"
这一句没问题吗?我总感觉怪怪的喃,我没试过。如果是正确的,要怎么解释喃?*不是代表所有吗?而后面那个
"!name:~,10!._pdf"是代表一个文件啊。所有对一个,有点讲不通啊。难道一直以来我就理解错了,*是代表单一?

TOP

返回列表