我正在尝试使用变量在某个位置创建一个文件夹,并且我收到“错误的文件名或编号”错误。如果可以,请帮忙。
dim filesys, newfolder, newfolderpath
Dim oShell : Set oShell = CreateObject("WScript.Shell")
Dim sWinDir : sWinDir = oShell.ExpandEnvironmentStrings("%windir%")
sCmd = " & sWinDir & """"\System32\oobe\info\pigu"""
WScript.Echo 3, sCmd, "This is a test to check the destined location"
newfolderpath = sCmd
set filesys=CreateObject("Scripting.FileSystemObject")
If Not filesys.FolderExists(newfolderpath) Then
Set newfolder = filesys.CreateFolder(newfolderpath)
End If
答案 0 :(得分:1)
指令
sCmd = " & sWinDir & """"\System32\oobe\info\pigu"""
创建文字字符串
& sWinDir & ""\System32\oobe\info\pigu"
事实上,不是有效路径,即文件名错误。
FileSystemObject
方法已经处理了路径中的空格,因此您不需要在它们的双引号之间放置路径(或者更确切地说,它们会导致路径无效,因为双引号不是路径中的有效字符)。将行更改为:
sCmd = sWinDir & "\System32\oobe\info\pigu"
或(更好)使用BuildPath
方法:
newfolderpath = filesys.BuildPath(sWinDir, "System32\oobe\info\pigu")
答案 1 :(得分:0)
如果你看一下sCmd:
>> sCmd = " & sWinDir & """"\System32\oobe\info\pigu"""
>> WScript.Echo 3, sCmd, "This is a test to check the destined location"
>>
3 & sWinDir & ""\System32\oobe\info\pigu" This is a test to check the destined location
>>
您同意不应创建名为& sWinDir & ""\System32\oobe\info\pigu"
的文件夹。 .FolderExists和.CreateFolder方法需要普通的文件夹规范,就像dir
会显示它们一样。
我对other question的回答为您提供了两种方法来构建带引号的文件/文件夹规范,以满足.Run / .Exec;当然你可以不用引号来遵守FSO的法律。