我正在尝试运行批处理脚本,它将一堆文本写入到SQL命令窗口中运行的.sql文件中。 我试图让我的批处理脚本输出一行文字说:
插入到TEST_TABLE(param1,param2)值('JohnSmith','Test1');
我的下面的代码不起作用,CMD只是在运行.bat文件时立即崩溃:
@echo off ( echo insert into TEST_TABLE (param1, param2) values ('JohnSmith','Test1'); ) > TEST.sql pause
但是,当我更改并添加引号时:
@echo off ( echo "insert into TEST_TABLE (param1, param2) values ('JohnSmith','Test1');" ) > TEST.sql pause
当我这样做时,它会按照预期的方式输出文件中的文本行,但是它有引号,我不能在那里,因为这会导致SQL命令失败。
任何人都可以请帮我理解如何让这个脚本输出这个特定的文本到.sql文件没有引号?
谢谢
你有两个选择。 使用set /P
命令而不是echo
将文本括在引号中(并且显示为不带引号):
@echo off < NUL ( set /P "=insert into TEST_TABLE (param1, param2) values ('JohnSmith','Test1');" echo/ ) > TEST.sql pause
……或者用一个插入符号将每个右括号转义出来:
@echo off ( echo insert into TEST_TABLE (param1, param2^) values ('JohnSmith','Test1'^); ) > TEST.sql pause