使用WPS表格进行文件重命名的优势

wils
wils

创作者俱乐部成员

以前都是在给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)

}

}

}

如有需要欢迎回帖,后面可以扩展一些功能,比如,自选路径;自选后缀;递归遍历文件夹等等

海南省
浏览 396
1
10
分享
10 +1
3
1 +1
全部评论 3
 
韩宇帆
你好,为什么FileCopy显示不可用
· 浙江省
回复
wils
wils

创作者俱乐部成员

可能是版本问题 还是用其他方法写脚本吧,这个方法不好用
· 海南省
回复
 
WPS 冲浪队长
WPS 冲浪队长

社区管理员

前排送花
· 广东省
回复