JQでWindowsバッチファイルを使用し、選択フィルタをパイプ処理しようとしています。JQ with Windows Batch - 選択に失敗する
{
"name": "test-mmc-deploy",
"id": "local$3d2075c5-73c0-47aa-8df5-cee3a70f68c4",
"lastModified": "Mon, 1 May 2017 13:56:15.980 AEST",
"servers": [
"local$520ee705-bdbb-4132-94cf-63bb213d2b46"
],
"status": "DEPLOYED",
"applications": [
"local$f3d791bd-14d9-4491-9541-5fa04d8c3164"
],
"href": "http://localhost:9090/mmc-console-3.8.2/api/deployments/local$3d2075c5-73c0-47aa-8df5-cee3a70f68c4",
"clusterNames": [],
"reconciled": false,
"clusterIds": []
}
通常のコマンドラインJQは、カールと連携し、次のように出力を提供します:JQで解析されている
例JSON
カール--basic -u管理者:管理者http://localhost:9090/mmc-console-3.8.2/api/deployments |しようとしている "ID
|「(テスト-MMC-デプロイ\ローカル$ 3d2075c5-73c0-47aa-8df5-cee3a70f68c4 "を
.nameの== \)" を選択し、[] .dataの" JQ Windowsのバッチファイルで作業以下のコマンドは、エスケープ文字の悪夢を作成してもらう。いくつかの助けをしてください必要があります。%% app_deploy_list %%は、上記の宣言JSONを保持している
for /f "tokens=*" %%a in ('echo %%app_deploy_list%% ^| jq "".data[] ^| select(.name==\"test-mmc-deploy\"^).id""') do (set app_id=%%a)
echo Application found: %app_id%
を。
私は取得していますエラーを次のとおりです: 'select'は認識されません
なぜ、%app_deploy_list%ではなく、%% app_deploy_list %%を使用していますか? – SomethingDark
こんにちはSomethingDark、それは間違いですが、私はそれを削除しますが、バッチコンパイラには選択エラーのための違いはありません。 – Sam