使用WPS表格进行文件重命名的优势
创作者俱乐部成员
以前都是在给WPS挑毛病,今天来夸一夸WPS😁
问题来自论坛朋友的回帖:https://bbs.wps.cn/topic/36194
在批量文件重命名这里,他喜欢用表格列出重命名前后的文件名,随意修改,执行vba宏,就可以完成修改,直观又方便
但以前遇到过,Excel表格里,无法获取包含特殊符号的文件名,导致这种方式不如用powershell等脚本支持的文件名广泛,所以一直避免使用这种方式,如下图所示。
在Excel里,无论是VBA立即窗口,还是表格里,都把特殊的一些符号处理成问号,导致进一步执行重命名时出错
今天在论坛朋友的提醒下,试了一下JS宏,却是完全正常处理
应该是因为JS宏默认用utf8编码,而vba默认用gbk,导致vba里遇到不同编码的文件名会出错,JS宏则支持更广泛
于是,用JS宏写了个简陋的重命名工具
点第一个按钮,读取当前文件夹里的txt文件到A列
点第二个按钮,按B列重命名A列的文件名
可以看到,JS宏支持特殊字符的文件名
🔔 | /** * CommandButton1_Click Macro */ function CommandButton1_Click() { Range("A1").EntireColumn.ClearContents() let f = Dir(ThisWorkbook.Path + "\\*.txt") let r = 1 while (f) { Range("A" + (r++)).Value2 = f f = Dir() } Range("A1").EntireColumn.AutoFit() } /** * CommandButton2_Click Macro */ function CommandButton2_Click() { let r = Range("A" + Rows.Count).End(xlUp).Row let rng = Range("A1:B" + r).Value2 for (let i of rng) { let s = ThisWorkbook.Path + "\\" + i[0] let d = ThisWorkbook.Path + "\\" + i[1] if (s !== d) { FileCopy(s, d) Kill(s) } } } |
如有需要欢迎回帖,后面可以扩展一些功能,比如,自选路径;自选后缀;递归遍历文件夹等等
创作者俱乐部成员
社区管理员