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 を満たすために引用符でファイル/フォルダー仕様を構築する 2 つの方法を提供しました。FSO の法律に従うために、引用符を省略してもかまいません。

于 2013-10-15T20:29:09.347 に答える