【问题标题】:Check if a folder exist and rename in vbscript检查文件夹是否存在并在vbscript中重命名
【发布时间】:2013-08-14 06:05:26
【问题描述】:

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

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

【问题讨论】:

    标签: vbscript copy rename


    【解决方案1】:

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

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

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

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

    您正在做的事情无需更改工作目录,顺便说一句,也无需更改两次实例化 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
    

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2014-05-24
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多