Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PowerShell运行时psql命令中的转义引号_Powershell_Psql - Fatal编程技术网

从PowerShell运行时psql命令中的转义引号

从PowerShell运行时psql命令中的转义引号,powershell,psql,Powershell,Psql,错误:json类型的输入语法无效 第1行:…foo来自数据@>'{key 如何转义该命令字符串以使psql不会抛出?推荐的方法是使用or驱动程序,因为它们在处理基本上所有连接、参数、结果、错误等方面都有许多优点 但是,如果您坚持使用命令行客户端,则可以通过添加反斜杠来转义嵌套的双引号以执行外部命令来修复语法错误。反斜杠只是为了转义PowerShell解析器的双引号: 从数据@>'{\`key\`:\`value\`}'所在的栏中选择foo; ^ ^ ^ ^ 单引号不需

错误:json类型的输入语法无效 第1行:…foo来自数据@>'{key


如何转义该命令字符串以使psql不会抛出?

推荐的方法是使用or驱动程序,因为它们在处理基本上所有连接、参数、结果、错误等方面都有许多优点

但是,如果您坚持使用命令行客户端,则可以通过添加反斜杠来转义嵌套的双引号以执行外部命令来修复语法错误。反斜杠只是为了转义PowerShell解析器的双引号:

从数据@>'{\`key\`:\`value\`}'所在的栏中选择foo; ^ ^ ^ ^ 单引号不需要转义

我还建议使用传递参数:

$params='-d','yourdb', “-h”,“localhost”, “-p',5432, “-U”、“您的用户”, '-c',从数据@>'{\`key\`:\`value\`}'所在的条形图中选择foo; &“psql.exe”@params
请注意,如果包含可执行文件的目录不在path环境变量中,则必须使用其绝对或相对路径调用psql.exe。

推荐的方法是使用或驱动程序,因为它们在处理基本上所有连接、参数、结果、错误等方面都有许多优点,…

但是,如果您坚持使用命令行客户端,则可以通过添加反斜杠来转义嵌套的双引号以执行外部命令来修复语法错误。反斜杠只是为了转义PowerShell解析器的双引号:

从数据@>'{\`key\`:\`value\`}'所在的栏中选择foo; ^ ^ ^ ^ 单引号不需要转义

我还建议使用传递参数:

$params='-d','yourdb', “-h”,“localhost”, “-p',5432, “-U”、“您的用户”, '-c',从数据@>'{\`key\`:\`value\`}'所在的条形图中选择foo; &“psql.exe”@params
请注意,如果包含可执行文件的目录不在path环境变量中,则必须使用其绝对或相对路径调用psql.exe。

不要使用命令行客户端。请使用或驱动程序。因为我试图在powershell中编写此脚本,这有点违背了目的。如果是这样,您仍然可以编写powershell脚本,但使用驱动程序提供的控制比命令行客户端提供的要好得多。因为我正在尝试快速编写调试代码段,并且psql支持-c开关,因此如果可以执行类似于上述的操作,我宁愿使用它,而不是挖掘更大的解决方案。如果使用Npgsql dll,您可以摆脱字符串/管道/转义和fo输入和输出都存在rmat问题。查询结果将类似于任何其他PowerShell命令的输出,这意味着您可以使用format table、export csv等。使用命令行客户端,您的选项将少得多。不要使用命令行客户端。请使用或驱动程序。因为我正在尝试在PowerShell中编写此脚本,这有点困难ats的目的是什么?您仍然可以编写PowerShell脚本,但使用驱动程序可以提供比命令行客户端更好的控制。因为我正在尝试快速编写调试代码段,并且psql支持-c开关,因此如果可以执行上述操作,我宁愿使用它,而不是深入研究更大的解决方案if使用Npgsql dll可以避免输入和输出中的字符串/管道/转义和格式问题。查询结果将类似于任何其他PowerShell命令的输出,这意味着您可以使用格式表、导出csv等。使用命令行客户端,您的选项将少得多。非常感谢您提供的反斜杠提示。小时数节省了。非常感谢你的反斜杠提示。节省了几个小时。
& "psql" "-d" "yourdb" "-h" "localhost" "-p" "5432" "-U" "youruser" "-c" "select foo from bar where data @> `'{ `"key`" : `"value`" }`';"