我是VBS脚本的新手,之前我用Excel VBA做了一些事情。现在我有一个脚本,它使用文件的路径名重命名单个文件(每个文件被截断为4个字母)),见下文。这是一些我修改了一些脚本以符合我的目的。但是,我想自动化文件重命名过程并重命名文件夹及其子文件夹中的所有文件,就像scipt对单个文件一样。有人可以帮我解决这个问题吗?
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 To Parameter.Count - 1
Set fso = CreateObject("Scripting.FileSystemObject")
findFolder = fso.GetParentFolderName(Parameter(i))
PathName = fso.GetAbsolutePathName(Parameter(i))
FileExt = fso.GetExtensionName(Parameter(i))
Search = ":"
findFolder2= Right(PathName, Len(PathName) - InStrRev(PathName, Search))
arr = Split(findFolder2, "\")
For j=0 To UBound(arr)-1
arr(j) = ucase(Left(arr(j), 4))
Next
joined = Join(arr, "%")
prefix = right(joined, len(joined)-1)
fso.MoveFile Parameter(i), findFolder + "\" + prefix
next
希望我能得到一些有用的想法。
赫比
答案 0 :(得分:1)
走树需要递归,这是一个为每个级别调用自身的函数。
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Dirname = InputBox("Enter Dir name")
ProcessFolder DirName
Sub ProcessFolder(FolderPath)
On Error Resume Next
Set fldr = fso.GetFolder(FolderPath)
Set Fls = fldr.files
For Each thing in Fls
msgbox Thing.Name & " " & Thing.DateLastModified
Next
Set fldrs = fldr.subfolders
For Each thing in fldrs
ProcessFolder thing.path
Next
End Sub
有关如何运行其他文件的帮助。
Set Shell = WScript.CreateObject("WScript.Shell")
shell.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
所以在循环之外,
Set Shell = WScript.CreateObject("WScript.Shell")
在循环中
shell.Run("wscript Yourscript.vbs thing.name, 1, True)
此外,最近在MS网站上删除了VBS帮助文件。它可以在https://1drv.ms/f/s!AvqkaKIXzvDieQFjUcKneSZhDjw的我的skydrive上找到它叫做script56.chm。