关于批量修改文件后缀

批量修改文件后缀名(suffix)有很多种方法,但是我们想要的结果都是转换文件的格式,其中在转换过程中如何做到不损坏文件就变得十分重要了,今天我们来讨论一下修改后缀的几种方法,和我遇到的问题:

@echo off
cd /d "D:\2022-03"
for /f "delims=" %%f in ('dir /s /b /a-d *.jpg') do (ren "%%f" "%%~nf".gif)

“D:\2022-03” 是我想要修改文件后缀的文件所在的文件夹地址

*.jpg 即表示这个文件夹中所有jpg后缀的文件

.gif 即表示把所有jpg后缀修改为gif后缀

复制上面的代码然后保存txt为bat,运行即可

ren *.jpg *.gif

还有一种方法就是把上面的代码粘贴进文本文档txt中,然后放在想要改变后缀的文件夹里,然后修改txt为bat批处理文件,然后运行即可

这两种方法的局限性:这两种方法就像在excel导入文件路径和名称,然后用VBA替换一样的局限性,他们这种属于直接暴力改后缀,很容易就让文件无法打开,或者损坏,要解决这种方法,除了自己手动点击文件-另存为-选择文件格式之外,还可以录制宏(对于word,excel),让宏记住你每次的选择,不过对于visio这类的软件没有录制宏的功能的话,我就很烦恼,因为boss今天让我把43个vsd文件转换成wmf文件,bat批处理完全失效,在线转换网站很多错误,而我去官网搜索batch convert to wmf vba (批量转换为wmf)发现他的能使用宏固定转换格式的只有PDF,XPS,我想要实现的是转换文件到wmf格式,并且原文件的文件名不发生改变,我在网上搜到的最接近我的解决方法的只有如下的宏代码:

https://docs.microsoft.com/en-us/office/vba/api/visio.document.exportasfixedformat

Sub export()
Set Pgs = Application.ActiveDocument.Pages
For N = 1 To Pgs.Count
Set Pg = Pgs(N)
PgName = Pg.Name
ExportName = Application.ActiveDocument.path + PgName + ".WMF"
Pg.Export ExportName
Next N
Sub End

上面这个代码能够实现将文件转换成:页-1.wmf 转换了文件名称,但是修改了后缀,并且没有破坏文件

后记:

后来我又看了一下,即使老版的visio(2003)可以录制宏,即使你能够通过macro让自己的文件名不变的情况下改变后缀,我们又会迎来新的问题,就是:每次打开新的需要修改后缀的文件,我们之前写好的宏就会消失不见,也就是说宏只能在一个文档里面应用,也就是说单靠office,单靠一个visio软件可能无法实现很多文件批量修改后缀到wmf,并且文件名不变的了。我还需要寻找其他的方法,来自编程小白的哭泣

如果大家想通过网页直接转换文件格式的话可以参考我的这篇文章:一些有用的转化网站

About The Author

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注