VBS 重命名一个文件夹内的全部文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBS 重命名一个文件夹内的全部文件相关的知识,希望对你有一定的参考价值。
请问如何右击一个文件夹弹出“顺序重命名所有文件” 然后调用一个VBS文件的功能把此文件夹内的所有文件按照数字顺序从到高重命名。
比如一个文件夹内有很多数码相机拍的图片,文件名是很长的字母数字组合,我想把它们改为1.jpg、2.jpg、3.jpg、4.jpg……的形式
难点有两个:一个是如何让用邮件菜单调用VBS文件(估计要配合注册表了)。第二个就是vbs的写法。
请各位高手指点一下思路,不用把代码都写出来,写出核心的代码就可以了,谢谢。
set folder=fso.getfolder("c:\photos") 'c:\photos改成文件夹的路径
set files=folder.files
for each file in files
num=0
do
ext=fso.getExtensionName(file)
if not fso.fileexists(folder&"\"&num&"."&ext) then
file.name=num&"."&ext
exit do
else
num=num+1
end if
loop
next 参考技术A 没用过。
如何快速重命名文件夹中的一堆文件
【中文标题】如何快速重命名文件夹中的一堆文件【英文标题】:How to quickly rename a bunch of files in the folder 【发布时间】:2011-01-10 12:59:59 【问题描述】:我有一堆名为“something_12345.doc”的文件(任何 5 位数字,不一定是 12345)。我需要将它们全部重命名为“something.doc”。这是一个 Unix 文件系统,我怀疑有一种方法可以只用一个命令来做到这一点......任何 Unix 正则表达式专家可以帮忙吗?
谢谢!
【问题讨论】:
你将只剩下一个文件,基本上,你正在删除 N-1 个文件并将第 N 个文件复制到something.doc
-- 这是你想要的吗?
-1 因为被问经常。您应该先搜索 SO。
【参考方案1】:
在 FreeBSD 上,您可能对 sysutils/renameutils 端口感兴趣。命令qmv
打开您的$EDITOR 并允许您在一个相当舒适的环境中指定所有文件重命名。我个人更喜欢qmv -fdo
(单列)格式。
【讨论】:
【参考方案2】:使用 sed
ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash
【讨论】:
【参考方案3】:这个问题在 SO 上被问了 很多 次:
bash script to rename all files in a directory? bash Linux - Massive folder rename How to do a mass rename? https://***.com/questions/7137/replacing-one-string-in-a-bunch-of-file-names-with-another我的个人偏好是mmv。但请参阅“Mass Rename/copy/link Tools”。
【讨论】:
【参考方案4】:@OP,shell 已经为您扩展了您的模式,在您的 mv 语句中,您不必再次指定 5 位数字的模式。
for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
echo mv "$file" "$file%_*.doc"
done
【讨论】:
感谢 ghostdog74 和其他所有人!【参考方案5】:rename 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc
【讨论】:
我在 FreeBSD 上,所以这不起作用.. bash: /usr/local/bin/rename: Argument list too long 我不知道如何设置重命名变量 想通了。对于 [A-Za-z]*_[0-9][0-9][0-9][0-9][0-9].doc 中的 i做 mv "$i" "$i/_[0-9][0-9][0-9][0-9][0-9]";完成【参考方案6】:是的,rename
采用 perl 风格的正则表达式。做一个man rename
。
【讨论】:
并非总是如此。在 RH 系统上,它会进行简单的字符串替换。以上是关于VBS 重命名一个文件夹内的全部文件的主要内容,如果未能解决你的问题,请参考以下文章