Как я могу избежать двойных кавычек в командной строке для сценария .vbs? - PullRequest
3 голосов
/ 29 июня 2011

У меня есть скрипт.Я хочу отправить строку с двойными кавычками внутри этого скрипта, например: Cscript myScript.vbs "Тестирование" этой строки ""

Но двойные кавычки внутри строки делают так, чтобы строка никогда не доходила доскрипт правильно.Я пытался убежать с помощью карата (^) или двойных двойных кавычек («Тестирование», «эта строка», «») с разными результатами, но ни один из них не является результатом, который мне нужен (скрипт, получающий «Тестирование этой строки»).

Чтобы обосновать, почему мне нужно это сделать, я пытаюсь отправить строку SQL в скрипт, который будет редактировать мою таблицу Orca, и в одном из значений должны быть двойные кавычки, чтобы сделать то, что яхочу сделать с косаткой.

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

Вы можете попробовать это:

Вот скрипт vb x.vbs:

Wscript.Echo Unescape(Wscript.Arguments.Item(0))

Вот вывод для его запуска:

D:\>cscript x.vbs "Testing %22this line%22"
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Testing "this line"

Есливы замените все "на% 22, вы сможете использовать этот метод для передачи двойных кавычек.

0 голосов
/ 21 февраля 2017

Это не может быть сделано. Я перепробовал все, и единственный способ заставить эту работу - назначить некоторую строку символов для представления «в вашей VBS и заменить аргументы командной строки указанной строки на». Я выбрал что-то, что вряд ли будет проблемой:!: Была строка, которую я использовал для представления ".

В своем коде я добавил следующее:

strArgu0 = Wscript.Arguments(0)
strOldSTR = Replace(strArgu0,":!:","""")
0 голосов
/ 16 мая 2013

Примеры, которые я видел, используют обратную косую черту перед кавычкой, чтобы избежать ее.Типичным примером этого является передача параметров ведения журнала в программу установки (пакет установщика Windows)

Setup.exe /v"/l*v \"c:\My Log Files\test.log\" /qn"
...