在某个位置创建一个文件夹并收到“错误的文件名或编号”错误

时间:2013-10-15 20:09:50

标签: vbscript

我正在尝试使用变量在某个位置创建一个文件夹,并且我收到“错误的文件名或编号”错误。如果可以,请帮忙。

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

2 个答案:

答案 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的法律。