2013-10-15 42 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

相關問題