使用引号内的引号通过 bat 内的 plink 执行 psql

Posted

技术标签:

【中文标题】使用引号内的引号通过 bat 内的 plink 执行 psql【英文标题】:Executing psql through plink within a bat using quotes within quotes 【发布时间】:2020-02-20 06:46:48 【问题描述】:

这个在 bat 中执行的简单更新不起作用。

@echo off
plink -pw passcode user@192.168.10.110 "psql -U sa DATABASE -c 'update users set username = 'Last_Name' where iduser = 12345'"

这个想法是从他的命令行在远程 linux 服务器中执行 psql 更新。我知道问题与如何将引号设置为分配给 char 列 username 的 char 值 Last_Name 有关,但我不知道正确的转义字符序列。

【问题讨论】:

你的转义序列很好。在 " (双引号) 中,您可以随意使用 ' (单引号)。 【参考方案1】:

使用反斜杠字符转义 sql 字符串。

@echo off
plink -pw passcode user@192.168.10.110 "psql -U sa DATABASE -c \"update users set username = 'Last_Name' where iduser = 12345\""

【讨论】:

以上是关于使用引号内的引号通过 bat 内的 plink 执行 psql的主要内容,如果未能解决你的问题,请参考以下文章

通过排除双引号内的逗号来拆分字符串

计算双引号内的字符数

Bash——反引号内的双引号

引号内的引号太多——怎么办?

处理包含双引号内的单引号或相反情况的字符串的简单方法是啥?

单引号内的单引号删除正斜杠