检查文件夹是否存在并在vbscript中重命名

时间:2013-08-12 19:35:47

标签: vbscript copy rename

好的,这就是我想要做的。我的脚本也复制了计算机上appdata文件夹的文件夹,但这就是我需要它做的事情。我需要它来检查该名称的文件夹是否已经存在,如果它确实将其重命名为其他内容,那么复制该文件夹是我当前的脚本,我需要修改以检查该文件夹是否存在。 Thanx提前

Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%")


Set oShell = CreateObject("WScript.Shell")
Set ofso = CreateObject("Scripting.FileSystemObject")
oShell.CurrentDirectory = oFSO.GetParentFolderName(Wscript.ScriptFullName)

DestinationFolder = strHomeFolder & "\vlc"
SourceFolder = oShell.CurrentDirectory & "\vlc"

dim filesys 
set filesys=CreateObject("Scripting.FileSystemObject") 
If filesys.FolderExists(SourceFolder ) Then 
filesys.CopyFolder SourceFolder , DestinationFolder 
End If

1 个答案:

答案 0 :(得分:3)

检测目标文件夹是否与检测源文件夹是否存在的方式相同:

If filesys.FolderExists(DestinationFolder) Then
  'do stuff
End If

重命名文件夹可以完成,例如像这样:

filesys.GetFolder(DestinationFolder).Name = "othername"

无需更改您正在执行的工作目录,BTW,以及两次实例化Shell和FileSystemObject对象。

但是,您应该更改构建源路径和目标路径的方式。摆弄路径分隔符很容易出错。最好使用BuildPath方法构建路径:

DestinationFolder = oFSO.BuildPath(oShell.ExpandEnvironmentStrings("%APPDATA%"), "vlc")
SourceFolder = oFSO.BuildPath(oFSO.GetParentFolderName(WScript.ScriptFullName), "vlc")

这样你的脚本可能看起来像这样:

Set sh  = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

dst = fso.BuildPath(sh.ExpandEnvironmentStrings("%APPDATA%"), "vlc")
src = fso.BuildPath(fso.GetParentFolderName(WScript.ScriptFullName), "vlc")

If fso.FolderExists(src) Then
  If fso.FolderExists(dst) Then fso.GetFolder(dst).Name = "othername"
  fso.CopyFolder src, dst
End If