如何解决使用VB重命名和移动文件夹
|| 我有以下脚本,如果我需要重命名文件夹中的文件,但现在我想将文件夹从一个映射的驱动器移动到另一个映射的驱动器,则该脚本非常有用。有人可以帮我修改脚本吗?我对VB还是陌生的,所以请原谅我无法理解这一点,但是花了我一些时间才弄清楚这一点,现在我不确定如何修改此脚本。先感谢您! 默认情况下,文件夹的标签为A.1234,A.5678,依此类推,并且始终为它们分配不同的编号。我将数字保留在标签中,因为它们是采购订单编号。所以我希望的最终结果是Ack〜1234,Ack〜5678,依此类推。Dim fso,f,f1,fc,s Set
fso = CreateObject(\"Scripting.FileSystemObject\")
Set f = fso.GetFolder(\"Y:\\Test\")
Set fc = f.Files
For Each f1 in fc
f1.move f1.ParentFolder & \"\\\" & replace(f1.Name,\"A.\",\"Ack~\")
同样,这些文件夹位于映射驱动器的根目录上,需要使用新名称移动到另一个映射驱动器。如果需要更多信息,请随时询问。
更新
我修改了以下脚本,以了解我要做什么。
Dim fso,objFol
Set fso = CreateObject(\"Scripting.FileSystemObject\")
Set objFol = fso.GetFolder(\"Z:\\\")
Set objFolders = objFol.Folders
For each folder in objFolders
fso.Movefolder folder,\"Y:\\\" & Replace(fso.Name,\"Ack~\")
Next
这给我一个错误,指出它不支持“文件夹”。 Z驱动器中将有任意数量的文件夹,我需要将它们全部移至Y驱动器。抱歉,如果我在上一篇文章中没有正确解释。
解决方法
move命令采用一个字符串,为此您要提供文件的父文件夹,因此该文件不会移动。我认为提供不同的文件夹位置就足够了。例如:
Dim fso,f,f1,fc,s
Set fso = CreateObject(\"Scripting.FileSystemObject\")
Set f = fso.GetFolder(\"Y:\\Test\")
Set fc = f.Files
For Each f1 in fc
f1.move \"Z:\\TargetFolder\\\" & replace(f1.Name,\"A.\",\"Ack~\")
注意:我还没有测试过,但是如果有问题,那就问一下
更新后的其他资料:
以下代码将允许您移动文件夹,并对文件夹名称字符串进行替换。
Dim fso,objFol,objMoveFol,strPathBuild
Set fso = CreateObject(\"Scripting.FileSystemObject\")
Set objFol = fso.GetFolder(\"Y:\\Test\")
For Each objMoveFol In objFol.SubFolders
\'Replace the root folder locations in the path
strPathBuild = Replace(objMoveFol,\"Y:\\Test\",\"Z:\\TargetFolder\\\")
\'Do the required other fiddle
strPathBuild = Replace(strPathBuild,\"Ack~\")
fso.Movefolder objMoveFol,strPathBuild
Next
确保您对这种事情非常小心,因为弄错了会非常壮观。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。