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

检查文件夹是否存在并在vbscript中重命名,vbscript,copy,rename,Vbscript,Copy,Rename,好的,这是我想做的。我的脚本将文件夹复制到计算机上的appdata文件夹中,但我需要它执行以下操作。我需要它来检查该名称的文件夹是否已经存在,如果已经存在,请将其重命名为其他名称,然后在此处复制该文件夹,这是我当前的脚本,我需要修改该脚本以检查该文件夹是否存在。先发制人 Set oShell = CreateObject("WScript.Shell") strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%") Set oShe

好的,这是我想做的。我的脚本将文件夹复制到计算机上的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

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

If filesys.FolderExists(DestinationFolder) Then
  'do stuff
End If
重命名文件夹可以这样做,例如:

filesys.GetFolder(DestinationFolder).Name = "othername"
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
顺便说一句,对于正在执行的操作,以及两次实例化Shell和FileSystemObject对象,无需更改工作目录

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

DestinationFolder = oFSO.BuildPath(oShell.ExpandEnvironmentStrings("%APPDATA%"), "vlc")
SourceFolder = oFSO.BuildPath(oFSO.GetParentFolderName(WScript.ScriptFullName), "vlc")
这样,您的脚本可能看起来有点像这样:

filesys.GetFolder(DestinationFolder).Name = "othername"
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

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

If filesys.FolderExists(DestinationFolder) Then
  'do stuff
End If
重命名文件夹可以这样做,例如:

filesys.GetFolder(DestinationFolder).Name = "othername"
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
顺便说一句,对于正在执行的操作,以及两次实例化Shell和FileSystemObject对象,无需更改工作目录

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

DestinationFolder = oFSO.BuildPath(oShell.ExpandEnvironmentStrings("%APPDATA%"), "vlc")
SourceFolder = oFSO.BuildPath(oFSO.GetParentFolderName(WScript.ScriptFullName), "vlc")
这样,您的脚本可能看起来有点像这样:

filesys.GetFolder(DestinationFolder).Name = "othername"
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