windows - 批处理脚本失败 - 无法在没有引号的情况下将文本输出到文件,但是不需要引号

标签 windows batch-file insert sqlplus quotes

我正在尝试运行一个批处理脚本,该脚本将一堆文本写入一个在 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/

相关文章:

java - Java中将ArrayList转换为mysql插入参数

java - svn java API "Unable to open an ra_local session to URL"

windows - 是否可以覆盖 hashbang/shebang 路径行为

c# - Microsoft Server 2008 R2 不从任务计划程序写入文本文件

batch-file - 在子目录中的文件名中搜索字符串

batch-file - 从批处理文件中打开 URL 而不使用浏览器

windows - %USERPROFILE% 空间错误

php - 如何同时对多个表使用插入查询?

MySQL:不为第 1 列和第 2 列插入重复项

windows - list 在 mingw 应用程序中被忽略