如何在%AppData%中创建文件夹和子文件夹

Leo*_*vas 2 vbscript appdata user-profile

首先,非常感谢你在过去的六个月中为3个Vbscript找到的所有帮助.我是Vbscripting的新手,我正在努力获取一个创建文件夹和复制文件的Vbscript同时覆盖该文件夹和文件(如果已经存在)要创建的文件夹和子文件夹(Avaya)C:\ Users \我的用户名\ AppData\Roaming\Avaya\Avaya\one-X代理\ 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
Run Code Online (Sandbox Code Playgroud)

Job*_*bbo 7

问题是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)
Run Code Online (Sandbox Code Playgroud)


Ste*_*uan 5

一些错误:

  1. 你声明fso,但你使用objFso
  2. 您可以使用%USERNAME%,但你应该考虑%APPDATA%,而不是
  3. 您应该使用OPTION EXPLICIT来检测拼写错误和未定义的变量
  4. 您应该通过一次变暗一个变量来使您的代码更易于阅读
  5. 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
Run Code Online (Sandbox Code Playgroud)

最后,不清楚为什么您的解决方案需要在 VBScript 中。看来您的要求是创建文件夹和复制文件,这意味着批处理文件可能要简单得多。