2013-10-15 37 views
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 

回答

1

指令

sCmd = " & sWinDir & """"\System32\oobe\info\pigu""" 

创建文本字符串

& sWinDir & ""\System32\oobe\info\pigu" 

其中,因为事实上,不是一个有效的路径,即一个坏的文件名。

FileSystemObjectFileSystemObject方法已经照顾到路径中的空间,所以你不需要为它们在双引号之间加一条路径(或者说,它们会导致路径变得无效,因为双引号是无效的字符在路径中)。行改成这样:

sCmd = sWinDir & "\System32\oobe\info\pigu" 

或(更好)使用BuildPath方法:

newfolderpath = filesys.BuildPath(sWinDir, "System32\oobe\info\pigu") 
+0

感谢您的帮助,这对我来说是未知的领域,我现在可以开始了解更多信息。顺便说一句,pigu这个词是一个尴尬的参考! – DIOS

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方法需要简单的folderspecs,就像dir会显示它们一样。

我的回答你的other question给你两种方法来建立与报价,以满足.RUN/.Exec文件/文件夹规范;当然,您可以放弃引用来遵守FSO的法律。

+0

谢谢,您的所有意见和评论都很有帮助,现在我希望在这个vbs领域发展。 – DIOS

相关问题