0

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

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
4

2 回答 2

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")
于 2013-10-15T20:26:03.830 回答
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显示它们一样。

我对您的另一个问题的回答为您提供了两种方法来构建带有引号的文件/文件夹规范以满足 .Run/.Exec; 当然,您可以省略引号以遵守 FSO 的法律。

于 2013-10-15T20:29:09.347 回答