拡張子が .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
401デフォルトの名無しさん
2021/09/06(月) 07:15:12.30ID:yJI9//ND ほえ〜、横からだけど目からウロコだわ >>396
為になった、さんきゅう
為になった、さんきゅう
402デフォルトの名無しさん
2021/09/17(金) 15:37:36.70ID:gyqQtjrG 質問です。
メモ帳に「移動元のファイルの場所 移動先のファイルの場所」が絶対パスで半角スペースで区切られています。
これを読み込み指示通りにファイルを移動させたいのですがどのように書くといいでしょうか?
また、リネームする必要があるファイルもあるのですがどうするといいでしょうか?
「C:\aa\bb.jpg D:\aa\cc.jpg」
メモ帳に「移動元のファイルの場所 移動先のファイルの場所」が絶対パスで半角スペースで区切られています。
これを読み込み指示通りにファイルを移動させたいのですがどのように書くといいでしょうか?
また、リネームする必要があるファイルもあるのですがどうするといいでしょうか?
「C:\aa\bb.jpg D:\aa\cc.jpg」
403デフォルトの名無しさん
2021/09/17(金) 17:20:03.57ID:i/XCCF5h forで読んでmoveで移動
もしechoの分からない人ならやめとけ
もしechoの分からない人ならやめとけ
404デフォルトの名無しさん
2021/09/17(金) 22:37:54.43ID:vaLPoEyz 「for バッチファイル」でググって訳がわからないようなら 、適当なエディタで開いて、" でくくるのを前提に
行頭、スペースとドライブ文字、行末、を置換してbatファイルとして名前を付けて保存
move "C:\aa\bb.jpg" "D:\aa\cc.jpg"
みたいになるように
なを、ファイル名にsjisじゃない何かが無い前提
行頭、スペースとドライブ文字、行末、を置換してbatファイルとして名前を付けて保存
move "C:\aa\bb.jpg" "D:\aa\cc.jpg"
みたいになるように
なを、ファイル名にsjisじゃない何かが無い前提
405デフォルトの名無しさん
2021/09/17(金) 23:29:19.93ID:O1PoA15N バッチは、ややこしい。
Power Shell, Ruby などでやれば?
それに、そのファイルは半角空白で区切っているけど、
Windows では、ファイルパスに半角空白も入るから、バグるので、
普通に、CSV 形式にすると良い。
その代わり、CSVパーサーが必要になるけど
タブ区切りのTSV も良い。
さすがにタブ文字・改行コードは、ファイルパスには入らないだろうから、簡単に取り出せる
Power Shell, Ruby などでやれば?
それに、そのファイルは半角空白で区切っているけど、
Windows では、ファイルパスに半角空白も入るから、バグるので、
普通に、CSV 形式にすると良い。
その代わり、CSVパーサーが必要になるけど
タブ区切りのTSV も良い。
さすがにタブ文字・改行コードは、ファイルパスには入らないだろうから、簡単に取り出せる
406デフォルトの名無しさん
2021/09/18(土) 00:13:27.23ID:q5iJ5tLu for /f "tokens=1* delims= " %%a in (List.txt) do (
set ERR=
if not exist "%%~a" set /a ERR+=2
if exist "%%~b" set /a ERR+=1
if not defined ERR (move "%%~a" "%%~b") else call echo ERROR:%%ERR%% "%%~a" "%%~b">>errlog.txt
)
pause
set ERR=
if not exist "%%~a" set /a ERR+=2
if exist "%%~b" set /a ERR+=1
if not defined ERR (move "%%~a" "%%~b") else call echo ERROR:%%ERR%% "%%~a" "%%~b">>errlog.txt
)
pause
407デフォルトの名無しさん
2021/09/18(土) 06:22:21.02ID:KTV+OCDB 横からすまんが半角スペース入りパスだとダメだよそれ
408デフォルトの名無しさん
2021/09/18(土) 06:34:39.03ID:KTV+OCDB 移動先フォルダがないとmdで作成してやらんとエラーになるし
移動先に同名の既存ファイルがあるかも知れないし
移動先に同名の既存ファイルがあるかも知れないし
409デフォルトの名無しさん
2021/09/18(土) 07:21:16.02ID:ALBIVGfh410デフォルトの名無しさん
2021/09/18(土) 08:54:34.49ID:d7JASW2c411デフォルトの名無しさん
2021/09/18(土) 11:01:52.40ID:7qS0Ehxx 書き捨てにするようなコードを「かも知れない」で必要以上無駄に肥大化させるのはゴミ屋敷住人と同じ愚かな思考
412デフォルトの名無しさん
2021/09/18(土) 12:50:48.70ID:1ehO0L4U 世の中にはプログラムすること自体が好きな人がいるんだよ
誰もが間違いなくその恩恵にあずかっているのに小馬鹿にするやつは
自分への軽蔑の視線に気付かない愚か者だ
誰もが間違いなくその恩恵にあずかっているのに小馬鹿にするやつは
自分への軽蔑の視線に気付かない愚か者だ
413デフォルトの名無しさん
2021/09/18(土) 21:08:19.94ID:OLaJCV9P 恩恵w
言い訳が論点ズレてく感じホンモノのガイジ臭
言い訳が論点ズレてく感じホンモノのガイジ臭
414デフォルトの名無しさん
2021/09/18(土) 21:14:40.28ID:PJ3Z1C6G こんなスレで一体、何を争う?
415デフォルトの名無しさん
2021/09/18(土) 21:22:43.49ID:gRgRQYIa 別にこのスレでも書いてれば気にもとめないけどね
ただ今回はコードも貼らずに注文だけ言ってたからカチンとくる奴もいるだろうさ
ただ今回はコードも貼らずに注文だけ言ってたからカチンとくる奴もいるだろうさ
416デフォルトの名無しさん
2021/09/19(日) 03:42:58.81ID:uWgOxiqk つまり自分は書けないクセに「プログラムすること自体が好きな人」とやらにネタを提供してやってるんだと
そして自分のお陰で皆が恩恵に預かれるのだから自分は良い行いをしているんだと言いたいワケか
おいおい何様だよw
そして自分のお陰で皆が恩恵に預かれるのだから自分は良い行いをしているんだと言いたいワケか
おいおい何様だよw
417デフォルトの名無しさん
2021/09/19(日) 06:31:47.09ID:K9vn79WO C++と違ってideoneみたいのないからな
418デフォルトの名無しさん
2021/09/19(日) 09:03:44.20ID:xPOv8IOw 空白付ならデリミタを:にしてツギハギでいけそう
419デフォルトの名無しさん
2021/09/19(日) 12:51:30.97ID:/yxUr6Cy rm -f /
だよって教えればいい
だよって教えればいい
420392
2021/09/20(月) 00:58:53.63ID:we+8yYct -rfじゃないとほとんど何も消えないでしょ
421デフォルトの名無しさん
2021/09/22(水) 13:43:55.48ID:KUdKcr1X 今時バッチなんて書いてるのは物好きです
おれは物好き
バッドノウハウ大好きだ♥
おれは物好き
バッドノウハウ大好きだ♥
422デフォルトの名無しさん
2021/09/22(水) 15:39:53.65ID:oingLDSY バッチの利点
バッチ自体はウィルスにやられない
みんな違うから狙われにくい
バッチ自体はウィルスにやられない
みんな違うから狙われにくい
423デフォルトの名無しさん
2021/09/22(水) 18:39:59.79ID:1Sr76Ukf ウイルスは知らんがランサムウェアで暗号化されてナイナイはされるんじゃね?
424デフォルトの名無しさん
2021/09/22(水) 19:49:34.87ID:HbYg107O これでバッチつくればいいぉw
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
425デフォルトの名無しさん
2021/10/13(水) 18:17:21.36ID:HAnV1WZK バッチ
426デフォルトの名無しさん
2021/10/13(水) 18:25:53.79ID:HAnV1WZK バッチの作り方聞きたくてコメントを書きこうもうとしたら、
427デフォルトの名無しさん
2021/10/13(水) 18:26:29.06ID:HAnV1WZK >>426
あれ、つづき・・・
あれ、つづき・・・
428デフォルトの名無しさん
2021/10/13(水) 18:29:35.54ID:HAnV1WZK >>427
質問かこうとして、バッチのイメージを書くとなぜか、ERRORで弾かれる
質問かこうとして、バッチのイメージを書くとなぜか、ERRORで弾かれる
429デフォルトの名無しさん
2021/10/13(水) 18:36:10.32ID:Veybj1d9 cmd .exeを書いたとかそんなことか?
430デフォルトの名無しさん
2021/10/13(水) 18:45:56.14ID:bhMjP/u8 作り方w
そこから?
そこから?
431デフォルトの名無しさん
2021/10/13(水) 18:47:46.52ID:HAnV1WZK FOR DO
432デフォルトの名無しさん
2021/10/13(水) 18:48:57.34ID:HAnV1WZK しつれいしました。
fo do型式の構文を書いたらerrorになってしまう・・・
fo do型式の構文を書いたらerrorになってしまう・・・
433デフォルトの名無しさん
2021/10/13(水) 18:49:34.04ID:HAnV1WZK for do型式でした
434デフォルトの名無しさん
2021/10/13(水) 18:51:20.12ID:mAb+BQMQ for /?
これ以上の説明は掲示板では不可能だからな
これ以上の説明は掲示板では不可能だからな
435デフォルトの名無しさん
2021/10/13(水) 20:37:11.25ID:wdMk643f ここはコマンドインジェクション対策が入ってるからコード載せたいならgistとかに上げてそのURL貼ったほうが良い
436デフォルトの名無しさん
2021/10/13(水) 20:51:02.94ID:NsQsq1qz for /L %i in (0.5=1=11) do echo %i
437デフォルトの名無しさん
2021/10/13(水) 21:17:55.30ID:NsQsq1qz cmd.exe /c command
438デフォルトの名無しさん
2021/10/14(木) 02:43:30.00ID:TuHqoxKX439デフォルトの名無しさん
2021/10/15(金) 20:24:48.38ID:NLG7IfQt UUエンコードしたらダメかな
440デフォルトの名無しさん
2021/10/15(金) 21:13:25.70ID:53pJc6NQ Base64の方がいいんじゃね
certutilで変換できる
certutilで変換できる
441デフォルトの名無しさん
2021/10/15(金) 22:55:44.35ID:NLG7IfQt 書込みテスト
C:\>certutil -f -encode in.bat in.b64
C:\>certutil -f -decode in.b64 out.bat
C:\>type in.b64
-----BEGIN CERTIFICATE-----
ZWNobyBoZWxsbyB3b3JsZA0K
-----END CERTIFICATE-----
C:\>
C:\>certutil -f -encode in.bat in.b64
C:\>certutil -f -decode in.b64 out.bat
C:\>type in.b64
-----BEGIN CERTIFICATE-----
ZWNobyBoZWxsbyB3b3JsZA0K
-----END CERTIFICATE-----
C:\>
442デフォルトの名無しさん
2021/10/17(日) 13:44:53.76ID:0LRNIe6v443デフォルトの名無しさん
2021/10/17(日) 17:19:52.54ID:R7AYOhq0 データだけのやつ
C:\>certutil -f -encodehex in.bat in.b64 1
C:\>certutil -f -decodehex in.b64 out.bat 1
C:\>type in.b64
ZWNobyBoZWxsbyB3b3JsZA0K
コマンド文の最後の1を4とか12にすると16進数
C:\>certutil -f -encodehex in.bat in.b64 1
C:\>certutil -f -decodehex in.b64 out.bat 1
C:\>type in.b64
ZWNobyBoZWxsbyB3b3JsZA0K
コマンド文の最後の1を4とか12にすると16進数
444デフォルトの名無しさん
2021/10/17(日) 19:11:59.67ID:PSl5tmbR 444
445デフォルトの名無しさん
2021/10/19(火) 15:20:48.60ID:RYpZUHHW446デフォルトの名無しさん
2021/10/21(木) 01:56:17.90ID:3qM4VvHD ダブルクリックで実行した時は最後にpauseしたいけどcmd.exeからコマンド打って実行した時はpauseを省きたい
ダブルクリックはショトカから実行するようにしてショトカに目印の引数を付けておくというのは思い付いたんだけど
それ以外、バッチ自身に判定させる方法ってありますか?
ダブルクリックはショトカから実行するようにしてショトカに目印の引数を付けておくというのは思い付いたんだけど
それ以外、バッチ自身に判定させる方法ってありますか?
447デフォルトの名無しさん
2021/10/21(木) 02:36:48.27ID:/W0Foxxl448デフォルトの名無しさん
2021/10/21(木) 02:55:46.15ID:/W0Foxxl 記憶違いだった
cmd.exeを起動したオリジナルコマンドラインだ
それに非公式でもない
cmd.exeを起動したオリジナルコマンドラインだ
それに非公式でもない
449デフォルトの名無しさん
2021/10/21(木) 02:58:42.54ID:lVKoKJNl @echo off
set a=%cmdcmdline%
echo hello
if /i not "%a:~1,1%"=="c" pause
set a=%cmdcmdline%
echo hello
if /i not "%a:~1,1%"=="c" pause
450デフォルトの名無しさん
2021/10/21(木) 03:54:49.34ID:3qM4VvHD451デフォルトの名無しさん
2021/10/21(木) 04:07:05.64ID:lVKoKJNl452デフォルトの名無しさん
2021/10/21(木) 04:29:14.76ID:3qM4VvHD >>451
謎な挙動しますね
echo %cmdcmdline%
として見てcmdから実行すると二度目の実行時に C となって3度目は echoはオフです となりました
if /i not "%cmdcmdline:~1.1%"=="c"
とする度にまるで
set "cmdcmdline=%cmdcmdline:~1.1%"
としてるかのような
こうならない為にわざわざ一旦setしてたんですね
なるほどです
謎な挙動しますね
echo %cmdcmdline%
として見てcmdから実行すると二度目の実行時に C となって3度目は echoはオフです となりました
if /i not "%cmdcmdline:~1.1%"=="c"
とする度にまるで
set "cmdcmdline=%cmdcmdline:~1.1%"
としてるかのような
こうならない為にわざわざ一旦setしてたんですね
なるほどです
453デフォルトの名無しさん
2021/10/21(木) 08:32:44.52ID:lVKoKJNl setlocal & if "%cmdcmdline:~1,1%"==":" pause
454デフォルトの名無しさん
2021/10/23(土) 20:34:55.19ID:ChfdQawL 自分を起動した親プロセスを特定すればいいのでは
ダブルクリックならexporer.exeになるはずだしcmd。exeならcmd。exe…なのか?
ダブルクリックならexporer.exeになるはずだしcmd。exeならcmd。exe…なのか?
455デフォルトの名無しさん
2021/10/24(日) 03:28:13.19ID:3uu+VZsn 変数が壊れてもいいなら>>453でいいやろ。ただしsetlocalはいらん。
このif条件式だとcmd画面の2度目でも失敗しない。環境によるけど。
別変数に代入してもいいが中に&等の文字あるとエラーでこける。
このif条件式だとcmd画面の2度目でも失敗しない。環境によるけど。
別変数に代入してもいいが中に&等の文字あるとエラーでこける。
456デフォルトの名無しさん
2021/10/24(日) 22:27:44.50ID:jz1DejpB 非公式変数で解決とか後々禍根を残しそうで嫌だな
457デフォルトの名無しさん
2021/10/25(月) 01:03:08.48ID:vrczGOVO では禍根を残さないバッチを頼む
458デフォルトの名無しさん
2021/10/25(月) 01:10:34.48ID:dZV3Jc+L 非公式発言は撤回してるけど?
459デフォルトの名無しさん
2021/10/29(金) 21:51:58.64ID:PNXAVzCe windowsで半角空白や&付ファイル名が許可されてるんだから
バッチファイルにD&Dやsendtoした時の
半角空白とか&の扱いはWindows側で何とかして欲しいなと思う。
バッチファイルにD&Dやsendtoした時の
半角空白とか&の扱いはWindows側で何とかして欲しいなと思う。
460デフォルトの名無しさん
2021/10/29(金) 21:54:07.20ID:tTd8I1wO バッチファイルに変換される言語&コンパイラ
https://github.com/toca/itch
https://github.com/toca/itch
461デフォルトの名無しさん
2021/10/29(金) 23:50:23.91ID:+3zqc/Sp >>459
これも%cmdcmdline%を参照して処理するしかない
これも%cmdcmdline%を参照して処理するしかない
462デフォルトの名無しさん
2021/10/30(土) 01:01:41.85ID:ZgBEU8E6 &はわざとそういう仕様にしたんだろうけど全角空白については、んなもん知るか。なんだと思う
コマンド類もANSIしか想定してないし
日本語ヘルプの間違いを正さないのも、敢えて、だろうね
毛唐共は底意地悪いというか強く出ないと何もしない
大人しくしてるととことん図に乗りナメくさる
欠陥あっても買ってくれて文句も言わず泣き寝入りしてくれるチョロい鴨としか思ってない
コマンド類もANSIしか想定してないし
日本語ヘルプの間違いを正さないのも、敢えて、だろうね
毛唐共は底意地悪いというか強く出ないと何もしない
大人しくしてるととことん図に乗りナメくさる
欠陥あっても買ってくれて文句も言わず泣き寝入りしてくれるチョロい鴨としか思ってない
463デフォルトの名無しさん
2021/10/30(土) 01:07:02.66ID:ShH7fSCq 半角空白はまだしも、全角空白はいただけない
464デフォルトの名無しさん
2021/10/30(土) 01:43:02.15ID:Y+svLIx5 cmdcmdlineを見て全部の引数に引用符を付ければいい話では
465デフォルトの名無しさん
2021/10/31(日) 00:05:13.37ID:VJFi2hrE >>464 引用符付引数表示バッチ(D&D,sendto用),拡張子はbat
@echo off & set a="%cmdcmdline:"=" "%"
for %%i in (%a:*t"=%) do if not %%i=="" set b=%%i& call :x
pause & exit
:x
if "%b:~1,1%"==" " set b=%b: =" "%
for %%j in (%b%) do if not %%j=="" echo %%j
@echo off & set a="%cmdcmdline:"=" "%"
for %%i in (%a:*t"=%) do if not %%i=="" set b=%%i& call :x
pause & exit
:x
if "%b:~1,1%"==" " set b=%b: =" "%
for %%j in (%b%) do if not %%j=="" echo %%j
466デフォルトの名無しさん
2021/10/31(日) 15:03:24.36ID:6z99IB+f 自分も結局cmdcmdline読んで置換して置換して
最後のファイルパス部分だけ""で囲みなおすとかいう技で何とかした。
けど空白&付ファイルを管理者権限オプション付けたショートカットにsendtoしたら
””の付き方の関係でコマンドエラーになってそもそも
バッチファイルすら動かせないのはどうしようもなかった。
最後のファイルパス部分だけ""で囲みなおすとかいう技で何とかした。
けど空白&付ファイルを管理者権限オプション付けたショートカットにsendtoしたら
””の付き方の関係でコマンドエラーになってそもそも
バッチファイルすら動かせないのはどうしようもなかった。
467デフォルトの名無しさん
2021/10/31(日) 16:14:17.42ID:C3Zqy8ME 普通のファイル名に&を使うのがバカ
&使うのはトリッキーな動作させる時だけ
&使うのはトリッキーな動作させる時だけ
468デフォルトの名無しさん
2021/10/31(日) 16:59:09.50ID:VJFi2hrE469デフォルトの名無しさん
2021/11/01(月) 06:54:23.99ID:jadZUHdf 引数を取得してからショートカットにまわせばいいんじゃね
start kanri.lnk 引数
start kanri.lnk 引数
470デフォルトの名無しさん
2021/11/01(月) 08:07:56.06ID:jadZUHdf だめやな
引数に"が一個でもあるとこけるわw
引数に"が一個でもあるとこけるわw
471デフォルトの名無しさん
2021/11/01(月) 08:27:08.38ID:jadZUHdf 変数もあかんしファイルで渡すしかなさそうやな
472デフォルトの名無しさん
2021/11/01(月) 12:50:11.96ID:QjI9xm4a 自分が使うバッチにファイル群なら運用回避で何とでもなるんだけど
会社の共有フォルダとかだとなんて皆使えるように使うしどうしてもな。
まあどうしようも無ければ最後はルール化して
半角全角空白記号周りのファイル名をリネームするツール回すのみだな。
会社の共有フォルダとかだとなんて皆使えるように使うしどうしてもな。
まあどうしようも無ければ最後はルール化して
半角全角空白記号周りのファイル名をリネームするツール回すのみだな。
473デフォルトの名無しさん
2021/11/02(火) 11:39:54.98ID:cNrRrDlB >>468
ファイル名じゃなくても&付きのURLってたまに処理対象になるし
ファイル名じゃなくても&付きのURLってたまに処理対象になるし
474デフォルトの名無しさん
2021/11/03(水) 10:25:06.03ID:/m7gndnZ >>466
1.バッチのショートカットを作成
2.「管理者として実行」に設定
3.リンク先の先頭にcmd /c を追加する
適用したらcmdはフルパスに変換される
これで動作するはず
管理者権限が不要ならcmd /c も不要
というかバッチに直接D&D,sendtoでもOK
1.バッチのショートカットを作成
2.「管理者として実行」に設定
3.リンク先の先頭にcmd /c を追加する
適用したらcmdはフルパスに変換される
これで動作するはず
管理者権限が不要ならcmd /c も不要
というかバッチに直接D&D,sendtoでもOK
475デフォルトの名無しさん
2021/11/03(水) 12:58:10.31ID:/m7gndnZ476デフォルトの名無しさん
2021/11/03(水) 20:10:42.41ID:/m7gndnZ477デフォルトの名無しさん
2021/11/03(水) 20:29:31.22ID:/m7gndnZ フルパスじゃないな
バッチファイル名に半角スペースか
よくわからん
バッチファイル名に半角スペースか
よくわからん
478デフォルトの名無しさん
2021/11/06(土) 21:15:51.20ID:INMdaaG1 set j=.body.playback
for /f "usebackq" %%a in (`curl %h%^|jq -r %j%.video_link[-1].url`)do set m=%%a
for /f "usebackq" %%a in (`curl %h%^|jq -r %j%.title`)do set t=%%a
2回もJSONに参照するのが嫌だから、1回で格納したいんだけどforを1回で回して2つ格納って出来ます?
for /f "usebackq" %%a in (`curl %h%^|jq -r %j%.video_link[-1].url`)do set m=%%a
for /f "usebackq" %%a in (`curl %h%^|jq -r %j%.title`)do set t=%%a
2回もJSONに参照するのが嫌だから、1回で格納したいんだけどforを1回で回して2つ格納って出来ます?
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
)
482デフォルトの名無しさん
2021/11/08(月) 16:25:54.29ID:Px/K8tF9 moveで移動するときに
指定したフォルダがないときに自動で作るとかできんの?
指定したフォルダがないときに自動で作るとかできんの?
483デフォルトの名無しさん
2021/11/08(月) 17:08:44.21ID:Wv1BXJs6 存在しないとリネーム
存在するとその下に移動
結果が全く違う
エラーも出ない
確認もない
たちの悪い仕様
存在するとその下に移動
結果が全く違う
エラーも出ない
確認もない
たちの悪い仕様
484デフォルトの名無しさん
2021/11/08(月) 21:36:39.36ID:Ev0WzRyD485デフォルトの名無しさん
2021/11/08(月) 22:36:27.76ID:z+jTzavH486デフォルトの名無しさん
2021/11/08(月) 22:40:00.92ID:z+jTzavH ただ、常にダブルクォーテションで括ってやって、外さないように制御したほうがいいよ
urlによく付いてくるクエリーとかだとパラメータを&で区切って書くので
""を外すと何かとやりにくいはず
urlによく付いてくるクエリーとかだとパラメータを&で区切って書くので
""を外すと何かとやりにくいはず
487デフォルトの名無しさん
2021/11/08(月) 22:55:02.48ID:hhTd8ytG うまいも何も恐らくjqコマンドの書き方の問題でしょ
488デフォルトの名無しさん
2021/11/08(月) 22:59:09.33ID:Ev0WzRyD すまぬ、「またまたー」と思いながらやり直したら普通に動きましたw
一応、>>479-480の例1と5で試したらしっかり動きましたw
一応、>>479-480の例1と5で試したらしっかり動きましたw
489デフォルトの名無しさん
2021/11/09(火) 00:35:07.87ID:QL8KoTXD >>488
5)は区切り文字が3つもあって、どれかがurlのクエリーに使われるかもしれない
またtokens=1-2はtokens=1*にすれば2つ目(.title)にはカンマがあっても大丈夫になる
で、一番いいと思うものが区切り文字としてTABを使うもの
(まず、urlやtitleにTABコードは使わないだろう)
6) @tsv
for /f "delims=N" %%I in ('cmd /u /c echo 三') do set TAB=%%I
for /f "usebackq tokens=1* delims=%TAB%" %%i in (`type test.json^|jq -r ".a|[.b,.d]|@tsv"`) do (
set x="%%i"
set y="%%j"
)
5)は区切り文字が3つもあって、どれかがurlのクエリーに使われるかもしれない
またtokens=1-2はtokens=1*にすれば2つ目(.title)にはカンマがあっても大丈夫になる
で、一番いいと思うものが区切り文字としてTABを使うもの
(まず、urlやtitleにTABコードは使わないだろう)
6) @tsv
for /f "delims=N" %%I in ('cmd /u /c echo 三') do set TAB=%%I
for /f "usebackq tokens=1* delims=%TAB%" %%i in (`type test.json^|jq -r ".a|[.b,.d]|@tsv"`) do (
set x="%%i"
set y="%%j"
)
490デフォルトの名無しさん
2021/11/09(火) 19:41:28.06ID:5mYjFh+F バッチファイルでコマンドプロンプトを起動して
C:\>hoge
というふうに「hoge」が入力された状態にしたいんですけどどうすればいいでしょうか
cmd /k の後がわかりません・・
C:\>hoge
というふうに「hoge」が入力された状態にしたいんですけどどうすればいいでしょうか
cmd /k の後がわかりません・・
491デフォルトの名無しさん
2021/11/09(火) 20:43:47.12ID:pDzmJqw9 @cmd.exe /k "prompt C:\$Ghoge"
「入力された状態」はahkとか使わないと無理じゃないかな
「入力された状態」はahkとか使わないと無理じゃないかな
492デフォルトの名無しさん
2021/11/10(水) 01:27:11.48ID:faifycsG 定型入力を省略したいってだけなら別の方法があるけど
rem hogeの後に続く文字列を入力させる
set /p REMAIN_STR="hoge"
rem hogeと結合する
set COMPLETE_STR=hoge%REMAIN_STR%
rem 完全な文字列を表示する
echo %COMPLETE_STR%
rem hogeの後に続く文字列を入力させる
set /p REMAIN_STR="hoge"
rem hogeと結合する
set COMPLETE_STR=hoge%REMAIN_STR%
rem 完全な文字列を表示する
echo %COMPLETE_STR%
493デフォルトの名無しさん
2021/11/10(水) 02:45:03.95ID:lbp+J88v hoge はコマンドで、途中まで入力された状態にしたいとく汲み取れるんだが
494デフォルトの名無しさん
2021/11/10(水) 02:56:31.36ID:eLi1lwzp コマンドの入力が面倒ってだけなら
doskeyで適当なエイリアスを設定するだけでも十分な気が
doskeyで適当なエイリアスを設定するだけでも十分な気が
495デフォルトの名無しさん
2021/11/10(水) 07:20:19.97ID:v4FfRZjw あるデバイスが抜いてさし直さないと読み込めません
コマンドプロンプトで刺してある状態を解除して読み込め直すことは出来ないですか?
コマンドプロンプトで刺してある状態を解除して読み込め直すことは出来ないですか?
496デフォルトの名無しさん
2021/11/10(水) 07:40:32.85ID:ZzX9Joeo devconでできない?
497デフォルトの名無しさん
2021/11/20(土) 17:53:21.19ID:KiGzNUkt 質問です。
やりたいことは
「エクスプローラーで選択したフォルダをショートカットキーを使って指定したフォルダに移動」
です。
BATファイルがショートカットキーで使えるようなので
これをなんとか使えないか調べたのですがわかりませんでした。
私のやりたいことは可能でしょうか?
やりたいことは
「エクスプローラーで選択したフォルダをショートカットキーを使って指定したフォルダに移動」
です。
BATファイルがショートカットキーで使えるようなので
これをなんとか使えないか調べたのですがわかりませんでした。
私のやりたいことは可能でしょうか?
498デフォルトの名無しさん
2021/11/20(土) 21:04:55.50ID:mzO+cRkE499デフォルトの名無しさん
2021/11/20(土) 23:01:39.27ID:785tmrzC バッチ(コマンド)だけでは無理
VBか何かで「エクスプローラーで選択」のアイテムのパスを取得出来れば可能
この辺で聞いてみたら?
VB.NET質問スレ(Part44)
http://mevius.2ch.net/test/read.cgi/tech/1527325729/
【VBScript】WSHについて話し合うスレ【JScript】
http://mevius.2ch.net/test/read.cgi/tech/1578522041/
素直に選択して右クリで「送る」するならバッチでも出来る、がCtrl+X,Ctrl+Vと手間は大して変わらん
どうしてもショートカットキーワンアクションでってならエクスプローラー諦めてそれが出来そうなファイラー探す方が早い
VBか何かで「エクスプローラーで選択」のアイテムのパスを取得出来れば可能
この辺で聞いてみたら?
VB.NET質問スレ(Part44)
http://mevius.2ch.net/test/read.cgi/tech/1527325729/
【VBScript】WSHについて話し合うスレ【JScript】
http://mevius.2ch.net/test/read.cgi/tech/1578522041/
素直に選択して右クリで「送る」するならバッチでも出来る、がCtrl+X,Ctrl+Vと手間は大して変わらん
どうしてもショートカットキーワンアクションでってならエクスプローラー諦めてそれが出来そうなファイラー探す方が早い
500デフォルトの名無しさん
2021/11/21(日) 14:03:31.46ID:/SaMuAE1 OSに現在誰がログインしてるかSYSTEM権限のタスクのバッチから取得したいと考えてます。
ログイン中のユーザー自体はquery userコマンドで拾えることが判ったのですが、
他にもっと適当なコマンドがあったら教えてください。
ログイン中のユーザー自体はquery userコマンドで拾えることが判ったのですが、
他にもっと適当なコマンドがあったら教えてください。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
