首先,非常感谢你在过去的六个月里为我节省生命的3个Vbscript找到的所有帮助。 我是Vbscripting的新手,我正在努力获取一个创建文件夹和复制文件的Vbscript同时覆盖该文件夹和文件(如果它们已经存在) 要创建的文件夹和子文件夹(Avaya)C:\ Users \ My Username \ AppData \ Roaming \ Avaya \ Avaya \ one-X Agent \ 2.5 \ 文件从(Myfile.txt)C:\ Myfile.txt到C:\ Users \ My Username \ AppData \ Roaming \ Avaya \ one-X Agent \ 2.5 \
我收到“未找到路径”错误,但是如果我离开路径直到(Avaya)它会创建Avaya文件夹而不是它的子文件夹C:\ Users \ My Username \ AppData \ Roaming \ Avaya \
这是我拥有的,并提前感谢你
Dim fso, vFolder
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
set objWShell = wScript.createObject("WScript.Shell")
usrName = objWShell.expandEnvironmentStrings("%USERNAME%")
Set fso = CreateObject("Scripting.FileSystemObject")
Set vFolder = fso.CreateFolder("C:\Users\" & usrName & "\AppData\Roaming\Avaya\one-X Agent\2.5\")
CreateFolderDemo = vFolder.Path
答案 0 :(得分:6)
问题是CreateFolder
不会创建中间文件夹。 FSO没有这样做的方法。这样使用mkdir
可能更容易:
Option Explicit
Dim shl
Set shl = CreateObject("WScript.Shell")
Call shl.Run("%COMSPEC% /c mkdir ""%APPDATA%\Avaya\one-X Agent\2.5""",0,true)
答案 1 :(得分:3)
一些错误:
fso
,但使用objFso
%USERNAME%
,但您应该考虑使用%APPDATA%
OPTION EXPLICIT
来检测拼写错误和未定义的变量CreateFolder
不会创建整个树,因此您需要使用FolderExists
例如:
Option Explicit
Dim objWShell
Set objWShell = WScript.CreateObject("WScript.Shell")
Dim appData
appData = objWShell.expandEnvironmentStrings("%APPDATA%")
Dim objFso
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
If Not objFso.FolderExists(appData + "\Avaya") Then
objFso.CreateFolder appData + "\Avaya"
End If
If Not objFso.FolderExists(appData + "\Avaya\one-X Agent") Then
objFso.CreateFolder appData + "\Avaya\one-X Agent"
End If
If Not objFso.FolderExists(appData + "\Avaya\one-X Agent\2.5") Then
objFso.CreateFolder appData + "\Avaya\one-X Agent\2.5"
End If
最后,还不清楚为什么你的解决方案需要在VBScript中。您的要求似乎是创建文件夹和复制文件,这意味着批处理文件可能会更简单。