我正在尝试运行一个批处理脚本,该脚本将一堆文本写入一个在 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
关于windows - 批处理脚本失败 - 无法在没有引号的情况下将文本输出到文件,但是不需要引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35488261/