【问题标题】:How to run couchbase n1ql-command from powershell如何从 powershell 运行 couchbase n1ql-command
【发布时间】:2019-10-16 10:12:43
【问题描述】:

我正在尝试从存储桶中提取所有文档并将它们通过管道传输到文件中。我正在运行这个命令:

PS C:\Program Files\Couchbase\Server\bin> ./cbq --engine couchbase://localhost --user Administrator --password 'password' --script="SELECT * FROM `bucket.name`"

但 Powershell 期待更多内容,并在执行命令后在每行的开头为我提供 >> 换行符。

如果我删除 --script=... 我登录到 cqb-shell,并且运行命令/脚本工作正常,但管道传输到文件变得困难。

有人知道这里缺少什么吗?以及如何从终端运行命令?

PS C:\Program Files\Couchbase\Server\bin> ./cbq -v SHELL VERSION : 2.0 在 Couchbase 社区版 6.0.0 build 1693 上

【问题讨论】:

  • 我有点不知所措,为什么这不起作用。我已经在我的本地机器上试过这个,它似乎工作正常。我唯一能想到的是,也许 Powershell 无法解析反引号`?我尝试使用反引号并收到错误响应(但我没有得到你所得到的换行符)。你介意尝试一下不带反引号的方法,看看是否会松动吗?
  • bucket.name 周围是否必须有反引号?第二个逃脱双引号。您可以尝试在反引号上加倍,或者使用常规单引号代替,这是一个错字。
  • 无反引号不起作用,因为存储桶包含一个点,单引号 ' 不起作用,但双反引号起作用!把它作为答案,我会标记它

标签: powershell couchbase n1ql


【解决方案1】:

【讨论】:

  • 问题在于运行 shell-command 并且它期待更多的东西,与添加 --file/output 相同。但是这让我发现了\REDIRECT file.json,它让我可以从 cbq-shell 而不是终端输出 -s
【解决方案2】:

答案就在 cmets 中:

在存储桶名称周围加上双反引号,因为单反引号转义了双引号

PS C:\Program Files\Couchbase\Server\bin> ./cbq --engine couchbase://localhost --user Administrator --password 'password' --script="SELECT * FROM ``bucket.name``"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多