Escaping di virgolette in stringhe VB6 o VBScript è semplice in teoria, anche se spesso fa paura quando visualizzato. Esci da una doppia citazione con un'altra doppia citazione.
Un esempio:
"c: \ program files \ mio app \ app.exe"
Se voglio sfuggire alle virgolette così ho potuto passare questo al guscio eseguire la funzione elencata da Joe o la funzione VB6 Shell vorrei scriverlo:
escapedString = """c:\program files\my app\app.exe"""
Come funziona? La prima e l'ultima citazione racchiudono la stringa e lasciano a VB sapere che questa è una stringa. Quindi ogni citazione che viene visualizzata letteralmente nella stringa ha un'altra doppia citazione aggiunta per evitarlo.
Diventa più folle quando si tenta di passare una stringa con più sezioni citate. Ricorda, ogni citazione che vuoi passare deve essere sfuggita.
Se voglio passare questi due frasi citate come una singola stringa separate da uno spazio (che non è raro):
"c: \ program files \ mio app \ app.exe" "c: \ Documents and Settings \ steve"
vorrei entrare in questo:
escapedQuoteHell = """c:\program files\my app\app.exe"" ""c:\documents and settings\steve"""
ho aiutato i miei amministratori di sistema con alcune VBScript che hanno avuto ancora più citazioni.
Non è bello, ma è così che funziona.
fonte
2011-01-30 04:45:33
Solo curioso: perché stai usando VB6? Ormai quella lingua non è stata sostituita dappertutto? – Olhovsky
@Kdoto: questo è ciò che Microsoft vuole che tu creda. Prima hanno investito molto nella demonizzazione della lingua, poi hanno lasciato parlare alle masse non lavate. – wqw
@kdoto @wqw Microsoft [detto in settembre 09] (http://channel9.msdn.com/posts/funkyonex/What-is-Microsofts-Visual-Basic-6-Support-Strategy) c'erano ancora diversi * milioni * persone che usano VB6, quindi forse non è così sorprendente. Molte persone hanno un sacco di codice VB6 "legacy" e Microsoft non ha fornito un percorso di aggiornamento decente. – MarkJ