拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう
過去スレ
%13 http://mevius.2ch.net/test/read.cgi/tech/1542779527/
%12 http://mevius.2ch.net/test/read.cgi/tech/1489207631/
%11 http://echo.2ch.net/test/read.cgi/tech/1424858999/
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc11.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/
バッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/
バッチファイルプログラミング 2.bat
http://pc8.2ch.net/test/read.cgi/tech/1104911889/
バッチファイルプログラミング質問スレ
http://pc5.2ch.net/test/read.cgi/tech/1040614686/
探検
【.cmd】 バッチファイルスクリプト %14 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2020/08/15(土) 07:00:26.64ID:f3kW5kCx
479デフォルトの名無しさん
2021/11/07(日) 00:37:39.03ID:U3IH/L/8 >>478
ちょっとjqを調べてみたら、いくつか使える候補が見つかった
batで使いやすいのは結果が1行で出力されるもの \(),join(""),@csv
for文で、\()とjoinは任意の区切り記号、csvは区切り記号として[,]の3つを指定する
また複数行の出力場合は擬似配列変数に代入するとかでできる
【例】
長いので、入力が{"a":{"b":"foo","c":"bar","d":"baz"}}とした場合 (※.a.bは.a|.bでも良い)
1) \()
for /f "usebackq tokens=1-2 delims=," %%i in (`curl 〜^|jq -r ".a|""\(.b),\(.d)"""`) do (
set m=%%i
set t=%%j
)
2) join("")
for /f "usebackq tokens=1-2 delims=," %%i in (`curl 〜^|jq -r "[.a.b,.a.d]|join("""","""")"`) do (
3) ,での出力
setlocal EnableDelayedExpansion
set n=0
for /f "usebackq tokens=*" %%i in (`curl〜^|jq -r ".a.b,.a.d"`) do (
set d!n!=%%i
set /a n+=1
)
echo;%d0%
echo;%d1%
endlocal
ちょっとjqを調べてみたら、いくつか使える候補が見つかった
batで使いやすいのは結果が1行で出力されるもの \(),join(""),@csv
for文で、\()とjoinは任意の区切り記号、csvは区切り記号として[,]の3つを指定する
また複数行の出力場合は擬似配列変数に代入するとかでできる
【例】
長いので、入力が{"a":{"b":"foo","c":"bar","d":"baz"}}とした場合 (※.a.bは.a|.bでも良い)
1) \()
for /f "usebackq tokens=1-2 delims=," %%i in (`curl 〜^|jq -r ".a|""\(.b),\(.d)"""`) do (
set m=%%i
set t=%%j
)
2) join("")
for /f "usebackq tokens=1-2 delims=," %%i in (`curl 〜^|jq -r "[.a.b,.a.d]|join("""","""")"`) do (
3) ,での出力
setlocal EnableDelayedExpansion
set n=0
for /f "usebackq tokens=*" %%i in (`curl〜^|jq -r ".a.b,.a.d"`) do (
set d!n!=%%i
set /a n+=1
)
echo;%d0%
echo;%d1%
endlocal
480デフォルトの名無しさん
2021/11/07(日) 01:01:53.46ID:U3IH/L/8 4) @csv
for /f "usebackq tokens=1-2 delims=," %%i in (`type test.json^|jq -r ".a|[.b,.d]|@csv"`) do (
set m=%%~i
set t=%%~j
)
あ、-cというのも見つけた
5) -cで配列を出力
for /f "usebackq tokens=1-2 delims=[,]" %%i in (`type test.json^|jq -c ".a|[.b,.d]"`) do (
set m=%%~i
set t=%%~j
)
for /f "usebackq tokens=1-2 delims=," %%i in (`type test.json^|jq -r ".a|[.b,.d]|@csv"`) do (
set m=%%~i
set t=%%~j
)
あ、-cというのも見つけた
5) -cで配列を出力
for /f "usebackq tokens=1-2 delims=[,]" %%i in (`type test.json^|jq -c ".a|[.b,.d]"`) do (
set m=%%~i
set t=%%~j
)
481デフォルトの名無しさん
2021/11/07(日) 01:58:35.64ID:DID0sM5T for /f "tokens=1-2 delims=," %%a in ('curl %h%^|jq %j%.video_link[-1].url,%j%.title') do set "m=%%~a"&set t=%%~b
みたいな感じで
jqの方よく分かって無いけど、カンマ区切りで両方の要素フィルタリングしてforでトークンとカンマをデリミタ指定してやれば行けそう
だけど要素にカンマが含まれてたら失敗するかも
次案
for /f "delims=" %%a in ('curl %h%') do (
for /f "usebackq" %%b in (`echo %%a^|jq -r %j%.video_link[-1].url`)do set m=%%b
for /f "usebackq" %%c in (`echo %%a^|jq -r %j%.title`)do set t=%%c
)
みたいな感じで
jqの方よく分かって無いけど、カンマ区切りで両方の要素フィルタリングしてforでトークンとカンマをデリミタ指定してやれば行けそう
だけど要素にカンマが含まれてたら失敗するかも
次案
for /f "delims=" %%a in ('curl %h%') do (
for /f "usebackq" %%b in (`echo %%a^|jq -r %j%.video_link[-1].url`)do set m=%%b
for /f "usebackq" %%c in (`echo %%a^|jq -r %j%.title`)do set t=%%c
)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【高市速報】中国、最後通牒 [308389511]
- しね✋ーーーーー☀
- 高市早苗さんとデートで行きたいスポット
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 【速報】福島原発でキセノン135が検出されてる模様、再臨界か [668970678]
- 今からアダルトショップ行くか迷ってるからオススメ教えろ!
