У меня есть процедура SQL, которая вызывает командную оболочку для записи дампа SQL в файл. Возьмем, к примеру, этот отредактированный файл:
VALUES(
@SomeVar
,1
)
Процедура вызывает:
echo VALUES(>> C:\somefile.sql
echo @SomeVar>> C:\somefile.sql
echo ,1>> C:\somefile.sql
echo )>> C:\somefile.sql
Это отлично работает, за исключением строки ,1
. Если вы запустите echo ,1>> C:\somefile.sql
в CMD, вы увидите, что C:\somefile.sql содержит только ,
Моя теория состоит в том, что echo
думает, что может принимать более 1 параметра.
Если вы измените команду на echo ,1blah>> C:\somefile.sql
, она отлично работает.
Я мог бы изменить свою процедуру, чтобы проверить, содержит ли строка ,
, за которой следует число, за которым не следует ничего, и добавить ^
к числу, чтобы избежать его. Хотя это немного больно.
Также echo 1>> C:\somefile.sql
пишет Echo is ON
Есть ли способ echo
буквальной строки в CMD? Включение строки в " "
выводит метки "
. Или есть какое-то другое решение, о котором вы можете подумать?