2016-11-27 154 views
2

我正在創建一個批處理腳本,用於創建和寫入VBScript。我寫的文件是這樣的:批處理文件創建並寫入VBScript文件

echo (code for vbscript) >> [name of vbscript].vbs 

但是,該代碼的一部分是困擾着我:

echo If Len(m) > 1 then >> sys.vbs 

由於代碼本身中有一個>符號,批文件將其解釋爲我試圖寫入VBScript並切斷代碼,但事實並非如此。我想要代碼說If Len(m) > 1 Then,但它只是說If Len(m) then

我已經嘗試過解決這個工作通過修改代碼的說:

echo if NOT Len(m) < 1 then >> sys.vbs 

但這並不工作。如果我這樣做,那麼它完全省略了整行代碼。

如果我沒有很好地解釋這個問題,我很抱歉,很難形容。

+2

用脫字符將'''換掉。根據這個'echo'聲明是否存在於括號內,你可能還需要避開括號。 '如果Len ^(m ^)^> 1則回顯>> sys.vbs' – rojo

+1

編寫一個寫入VBScript的BAT腳本聽起來像是一種非常迂迴的做事情的方式。你確定這是必要的嗎?你真的確定這樣做*這種方式*是必要的嗎?我很難想象一個會使這種方法成爲最佳選擇的問題。也許你的時間花在思考一個更好的方法上,而不是這些笨拙的解決方法。 – Tomalak

回答

0

<,>>>分批爲redirection operators。正如@rojo已經在評論中指出的,你需要有一個插入符號(^)如果你想呼應他們在輸出文件文本字符轉義:

echo If Len(m) ^> 1 Then >> sys.vbs 

使用周圍的回饋字符串雙引號不起作用在這種情況下,因爲echo在輸出中包含雙引號。

但是,我同意@Tomalak,您可能想重新考慮您的方法。從批處理文件中快速生成VBScript通常不是解決您手頭上的任何問題的好方法。