cli-kintone 日時指定のクエリ

はじめて投稿させていただきます。

PowerShellでcli-kintoneを使いたいのですが、新しくアプリを作りフィールド等なにも追加しない状態で、cli-kintoneの日時指定の下記クエリを実行すると「クエリ記法が間違っています。」のエラーが出てしまいます。

.\cli-kintone.exe --export -d (ドメイン) -a (アプリID) -t (APIKEY) -q '作成日時 > "2021-11-01T00:00:00+09:00"'

AppError: 400 [CB_VA01] 入力内容が正しくありません。 (・・・) {"query":{"messages":["クエリ記法が間違っています。"]}}

 

下記のように、日時をTODAY()等にすると問題なく動作するので、日時フォーマット指定の問題と考えています。

.\cli-kintone.exe --export -d (ドメイン) -a (アプリID) -t (APIKEY) -q '作成日時 > TODAY()'

大変初歩的な質問で恐縮ですが、ご指摘いただけると幸いです。

sbonjackさん

お世話になっております。

macOSのiTerm2では、ご提示頂いた「-q ‘作成日時 > “2021-11-01T00:00:00+09:00”’」でそのまま動作しました。
「-q ‘作成日時 > 2021-11-01T00:00:00+09:00’」のようにダブルクォーテーションを取り除くと、sbonjackさんと同様のエラーが出ました。

推測ですがPowerShellだと、ダブルクォーテーションの前にエスケープが必要なのかもしれませんね。
下記記事では「シングルクォート内のダブルクォートはエスケープ無しで記述できる」とあるので、真相はわかりませんが。
https://trend-desk.com/archives/1746#i

ご参考になればと思います。

江田篤史さん

こんにちは。macOS環境での検証ありがとうございます。大変参考になりました。

こちらも試しにWindowsのコマンドプロンプトでダブルクォーテーションをエスケープして実行したところ、

.\cli-kintone.exe --export -d (ドメイン) -a (アプリID) -t (APIKEY) -q "作成日時 > \"2021-11-01T00:00:00+09:00\""

これはうまく動作しました。同じ内容でPowerShellではエラーになります。Kintoneの日時フォーマットの問題というよりPowerShell特有の問題のようですね。

PowerShell関連の基本的な文法から学びなおしてみます。

ありがとうございました。

最終的に、下記のような表記で正常に動作しました。

.\cli-kintone.exe --export -d (ドメイン) -a (アプリID) -t (APIKEY) -q '作成日時 > \"2021-11-01T00:00:00+09:00\"'

PowerShellではシングルクォーテーションの中にダブルクォーテーションの記述は可能ですが、ダブルクォーテーションの中はPowerShellでは式としてみなされるため、日時表記部分が不完全な式として認識されエラーになっていました。なので、エスケープが必要でした。

無事解決しました。ありがとうございました!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。