2016-10-05 5 views
0

私はtriyngを使ってVBSを通して管理者としてファイルを実行しますが、ここでファイルを見つけることができません。私はファイルを実行しようとしていますが、VBSはファイルを見つけることができませんtriyngを実行する

Set WshShell = WScript.CreateObject("WScript.Shell") 
If WScript.Arguments.Length = 0 Then 
    Set ObjShell = CreateObject("Shell.Application") 
    ObjShell.ShellExecute "wscript.exe" _ 
    , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1 
    WScript.Quit 
End if 
CreateObject("WScript.Shell").Run ("C:\Users\David\Desktop\X-tra Settings\File.bat") 

ファイルを見つけることができません。私はいくつか試しました。 VBSファイルと同じフォルダにありますが、見つからない場合があります。あなたの変数を引用する

+2

あなたは 'ScriptFullName'を引用しましたが、バッチファイルを引用しなかったのはなぜですか?また、 'run'メソッド呼び出しで括弧を削除してください。 –

+0

私はScriptFullNameをqoutedしました。なぜなら私はエラーが出ないからです。 –

+2

なぜ、バッチファイルへのパスが同じケアに値しないのでしょうか? –

答えて

0

、私はこの機能を使用することをお勧めいたします:あなたは、コマンドラインにスペースが不足している

If Not WScript.Arguments.Named.Exists("elevate") Then 
    CreateObject("Shell.Application").ShellExecute WScript.FullName _ 
    , ""& DblQuote(WScript.ScriptFullName) &" /elevate","","runas", 1 
    WScript.Quit 
End If 
Set Ws = WScript.CreateObject("WScript.Shell") 
Ws.Run DblQuote("%userprofile%\Desktop\X-tra Settings\File.bat"),1,True 
'**************************************** 
Function DblQuote(Str) 
    DblQuote = Chr(34) & Str & Chr(34) 
End Function 
'**************************************** 
0

Function DblQuote(Str) 
    DblQuote = Chr(34) & Str & Chr(34) 
End Function 

そして、あなたのコードは、このいずれかのように見えます。この:それはないでしょう

wscript.exe"C:\Users\David\Desktop\X-tra Settings\File.vbs" 

:それ以外の場合は、これを実行しようとしている

ObjShell.ShellExecute "wscript.exe " _ 
, """" & WScript.ScriptFullName & """ 

ObjShell.ShellExecute "wscript.exe" _ 
, """" & WScript.ScriptFullName & """ 

は、この(wscript.exeと後に追加のスペースに気づく)するニーズ見つけることができる

関連する問題