【问题标题】:How to send parenthesis into pipe bounded by parenthesis?如何将括号发送到以括号为界的管道中?
【发布时间】:2017-07-14 19:34:24
【问题描述】:

在 Windows .bat 文件中,我可以像这样使用重定向:

(echo connect / as sysdba
echo select sysdate from dual;
echo exit
) | sqlplus -s /nolog

它会运行(显然这个例子什么都不做)。如何将括号传递为这种格式的查询,例如:

(echo connect / as sysdba
echo select trunc(sysdate) from dual;
echo exit
) | sqlplus -s /nolog

不炸管?

【问题讨论】:

  • 用插入符号 ^) 转义 echo 中的右括号

标签: windows batch-file cmd pipe sqlplus


【解决方案1】:

您需要在右括号之前添加三个插入符号。

(
echo connect / as sysdba
echo select trunc(sysdate^^^) from dual;
echo exit
) | more

为什么?
在第一种情况下,您需要一个插入符号来转义括号以避免该块已关闭。

( echo test (test^) )

但是当你使用管道时,完整的结构被打包并转移到一个新的命令 exe。
在那里您需要第二次插入符号,但要转换此插入符号,您需要在原始回显中添加两个插入符号。
因此,您总共需要三个。

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 2011-01-12
    • 2011-09-26
    • 2021-10-12
    • 2011-01-31
    • 2020-11-19
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多