2017-06-17 323 views
0

我一直在寫一個可以調用可執行文件的VBScript文件。卡住字符串文字中雙引號的語法。系統找不到指定的文件 - 從vbscript運行可執行文件

這條線應該正確地編寫調用可執行行:

Print #PayLoadFile, "  WshShell.Run """ & exePath & """ " 

exePath是可執行變量保持路徑,這是正確的。

試圖讓上面的行寫入VBS有以下:

WshShell.Run """C:\Users\John Doe\test.exe""" 

當我運行VBScript手動編輯文件,"""可執行之間,我得到正確的結果。

但是,因爲它得到系統的錯誤找不到指定文件,而是將其寫入:

WshShell.Run "C:\John Doe\test.exe" 
+0

你試過用'Ch​​r(34)'來得到''''「嗎?嘗試''WshShell.Run「&Chr(34)&」C:\ Users \ John Doe \ test.exe「&Chr(34)' –

+0

那麼,您遇到了什麼問題?你也可以說你得到正確的結果........嘗試像'WshShell.Run「」「C:\ Users \ John Doe \ test.exe」「」',在這裏使用三個雙引號! – GTAVLover

+0

我嘗試了Chr(34),但沒有奏效。我遇到的問題讓我澄清。當我用三個雙引號在vbshel​​l內部執行命令時,它按預期工作。問題:我有一個VBA宏函數在Word中的父代碼,我試圖讓宏函數將vbscript文件寫入文件系統(與VBA完全分離),以便它寫下了這樣一行: 'WshShell.Run「」「」C:\ Users \ John Doe \ test.exe「」「'' – Robert

回答

0

在字符串中的VBScript雙引號必須轉義,因爲字符串字面本身必須在一對封閉雙引號。通過加倍雙引號完成轉義。因此,VBA語句

Print #PayLoadFile, "  WshShell.Run """ & exePath & """ " 
'          ^^    ^^ these double quotes 

在一組雙引號的創建與路徑的VBScript語句:

WshShell.Run "C:\Users\John Doe\test.exe" 
'   ^      ^     become these double quotes 

獲得所需要的額外的兩對VBScript的文件中雙引號(將把路徑放在shell的雙引號中)你需要在VBA語句中添加8個雙引號:

Print #PayLoadFile, "  WshShell.Run """"""" & exePath & """"""" " 
'          ^^^^    ^^^^ 
相關問題