【.cmd】 バッチファイルスクリプト %15 【.bat】 (868レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.net/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
257: デフォルトの名無しさん [sage] 2023/04/27(木) 01:12:28.56 ID:RXLaISm2 ^^ http://mevius.5ch.net/test/read.cgi/tech/1663153441/257
258: デフォルトの名無しさん [sage] 2023/04/28(金) 00:51:43.20 ID:aBUvFTO3 >>256 なんでだろう ^^どころか^も使わないものな http://mevius.5ch.net/test/read.cgi/tech/1663153441/258
259: デフォルトの名無しさん [sage] 2023/05/05(金) 12:47:19.73 ID:Tmh5Tg58 バッチファイルをvbsに移植してってAIに投げたらやってくれたんでPythonも頼んだらこっちも成功 妙な制限から卒業できるぞ http://mevius.5ch.net/test/read.cgi/tech/1663153441/259
260: デフォルトの名無しさん [sage] 2023/05/05(金) 13:40:50.07 ID:Aaus9EG8 c#がいいんじゃないか pythonは入れてない人が殆どだろうし、c#ならwindows全員入ってる まあ一旦コンパイルしないといけないけど http://mevius.5ch.net/test/read.cgi/tech/1663153441/260
261: デフォルトの名無しさん [sage] 2023/05/05(金) 20:08:22.78 ID:cXUEGYUP だったらC#はpowershellからコンパイルなしで使えるからpowershellがいいんじゃないか 実際powershellとC#ごっちゃにして使ってるぞ http://mevius.5ch.net/test/read.cgi/tech/1663153441/261
262: デフォルトの名無しさん [sage] 2023/05/05(金) 20:13:58.35 ID:jijjo6rD powershellはダブルクリックで動かんから個人ユーザーには向かない http://mevius.5ch.net/test/read.cgi/tech/1663153441/262
263: デフォルトの名無しさん [sage] 2023/05/05(金) 21:08:13.64 ID:oeszHJgX いやPowershellはexe化できるからダブルクリック起動も余裕だろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/263
264: デフォルトの名無しさん [sage] 2023/05/05(金) 21:25:45.96 ID:Aaus9EG8 powershellはイニシャルコストが高いんだよな PC起動後初回起動で相当待たされる よく使う人にはいいんだろうが、1ヶ月に数回とかだと苦痛なんだよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/264
265: デフォルトの名無しさん [sage] 2023/05/05(金) 23:33:04.65 ID:VDYHFDsH 昔はVBランタイムや .NET Frameworkも起動遅かったよなー http://mevius.5ch.net/test/read.cgi/tech/1663153441/265
266: デフォルトの名無しさん [sage] 2023/05/06(土) 17:23:48.16 ID:gRoxw4m5 jqコマンドってどっかにスレないかな cmdでバッチ作って動かしてるんだけど jsonで "characterID": 1,"Level": 50, "Status": {~ "characterID": 1,"Level": 100, "Status": {~ "characterID": 2,"Level": 50, "Status": {~ "characterID": 3,"Level": 50, "Status": {~ "characterID": 3,"Level": 100, "Status": {~ みたいにキャラごとにレベル50と100があったり50しかない場合があったりするんだけど キャラごとに100があったらそれだけなかったら50を拾うみたいな条件で引っこ抜きたいんだけど上手くいかないので何かいい方法ないかなって探してます 何かいい方法ないでしょうか http://mevius.5ch.net/test/read.cgi/tech/1663153441/266
267: デフォルトの名無しさん [sage] 2023/05/06(土) 18:44:39.95 ID:ugbjGoYF step1 50と100の両方を抜き出す step2 複数あったらstep1に対して100を抜き出す http://mevius.5ch.net/test/read.cgi/tech/1663153441/267
268: デフォルトの名無しさん [sage] 2023/05/06(土) 18:48:10.77 ID:ugbjGoYF step1 100を抜き出す step2 無ければ50を抜き出す http://mevius.5ch.net/test/read.cgi/tech/1663153441/268
269: デフォルトの名無しさん [sage] 2023/05/06(土) 18:58:59.94 ID:l5Xh2UOq powershellで $json_string = @' [{"characterID": 1,"Level": 50, "Status": {"idx":1}}, {"characterID": 1,"Level": 100, "Status": {"idx":2}}, {"characterID": 2,"Level": 50, "Status": {"idx":3}}, {"characterID": 3,"Level": 50, "Status": {"idx":4}}, {"characterID": 3,"Level": 100, "Status": {"idx":5}}] '@ $json = $json_string | ConvertFrom-Json $json | group characterID | select @{N='ID';E={$_.Name}},@{N='MaxL';E={[int]($_.group | measure -Maximum Level).Maximum}} | %{ $id=$_.ID; $maxl=$_.MaxL; $json | ?{ $id -eq $_.characterID -and $maxl -eq $_.Level}} 出力結果 characterID Level Status ----------- ----- ------ 1 100 @{idx=2} 2 50 @{idx=3} 3 100 @{idx=5} バッチファイルから呼び出す場合 set FILENAME=test.txt powershell -c "$json=gc %FILENAME% | ConvertFrom-Json; $json | group characterID | select @{N='ID';E={$_.Name}},@{N='MaxL';E={[int]($_.group | measure -Maximum Level).Maximum}} | %%{ $id=$_.ID; $maxl=$_.MaxL; $json | ?{ $id -eq $_.characterID -and $maxl -eq $_.Level}}" http://mevius.5ch.net/test/read.cgi/tech/1663153441/269
270: デフォルトの名無しさん [sage] 2023/05/06(土) 19:22:29.47 ID:l5Xh2UOq こっちのが短いし判りやすいか $hash=@{}; $json | %{ if (!$hash.Contains($_.characterID) -or $_.Level -gt $hash[$_.characterID].Level) { $hash[$_.characterID] = $_ }}; $hash.Values http://mevius.5ch.net/test/read.cgi/tech/1663153441/270
271: デフォルトの名無しさん [sage] 2023/05/06(土) 21:10:41.34 ID:UyrtVAAx 機能的にはあるっぽいよ jq "group_by(.characterID) | map(max_by(.Level))" ※動作未確認 http://mevius.5ch.net/test/read.cgi/tech/1663153441/271
272: デフォルトの名無しさん [sage] 2023/05/06(土) 22:01:27.09 ID:gRoxw4m5 >>269 powershell でできるのね ありがとう group characterIDでこうなって、 Count Name Group ----- ---- ----- 2 1 {@{characterID=1; Level=50; Status=}, @{characterID=1; Level=100; Status=}} 1 2 {@{characterID=2; Level=50; Status=}} 2 3 {@{characterID=3; Level=50; Status=}, @{characterID=3; Level=100; Status=}} selectの結果こうなってるみたいだけど ID MaxL -- ---- 1 100 2 50 3 100 select内の『E={[int]($_.group | measure -Maximum Level).Maximum}』でLevelの最大値が取れる構文が理解できてない 特に.Maximumの情報が見つからなくてわかってない measure結果のMaximumの値を取得してるってこと? Count : Average : Sum : Maximum : Minimum : StandardDeviation : Property : その後はまだ全然わかってない 『%{ $id=$_.ID; $maxl=$_.MaxL;$json | ?{ $id -eq $_.characterID -and $maxl -eq $_.Level}}』 select結果のIDとMaxLとConvertFrom-Json結果のcharacterIDとLevelが同じ値のものだけ出力しているんだと思うんだけど構文が全く理解できない %はForEach? ?はWhere? って思って調べてるけど記述が一致する説明を見つけられていない http://mevius.5ch.net/test/read.cgi/tech/1663153441/272
273: デフォルトの名無しさん [sage] 2023/05/06(土) 22:02:29.33 ID:gRoxw4m5 唸ってる間に>>270-271が増えてた ありがとう 調べたり確認してみる http://mevius.5ch.net/test/read.cgi/tech/1663153441/273
274: デフォルトの名無しさん [sage] 2023/05/07(日) 01:38:48.15 ID:OzRuG3KU > measure結果のMaximumの値を取得してるってこと? そう。「集計プロパティ」とか「計算プロパティ」とかっていう構文。 learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_calculated_properties?view=powershell-5.1#select-object > %はForEach? > ?はWhere? そう。 ForEach-Object {} = % {} = foreach {} ≠ foreach () {} Where-Object {} = ? {} = where {} ≠ where () {} こうも書ける。 powershell -c "(gc 〜.txt -Raw | ConvertFrom-Json) | group characterID | foreach {$_.Group | sort Level | select -Last 1} | ConvertTo-Json" http://mevius.5ch.net/test/read.cgi/tech/1663153441/274
275: デフォルトの名無しさん [] 2023/05/09(火) 02:15:55.11 ID:ZvIGeNCt 変数の値に含まれる全角のダブルクォーテーションを 半角のダブルクォーテーションに置換するにはどうすればいいですか? setによる置換では期待通りに動作しませんでした set BatFileTag=”test1“ set "%BatFileTag:“="%" set "%BatFileTag:”="%" echo %BatFileTag% set BatFileTag=”test2“ set %BatFileTag:“="% set %BatFileTag:”="% echo %BatFileTag% http://mevius.5ch.net/test/read.cgi/tech/1663153441/275
276: デフォルトの名無しさん [] 2023/05/09(火) 05:44:06.79 ID:uZ4E3DcQ 動くのか確認してないけどBing AIに丸投げしてみたw バッチファイルで変数の値に含まれる全角のダブルクォーテーションを半角のダブルクォーテーションに置換するには、以下のような方法があります。 - 変数を`%%`で囲んで`set`コマンドで置換する場合、`%%`の前に`~`を付けるとダブルクォーテーションが除去されます¹。例えば、 ```bat set BatFileTag=”test1“ set BatFileTag=%~BatFileTag% echo %BatFileTag% ``` - 変数を`!`で囲んで遅延展開を有効にすると、全角のダブルクォーテーションも置換できます²。例えば、 ```bat setlocal enabledelayedexpansion set BatFileTag=”test2“ set BatFileTag=!BatFileTag:“="! set BatFileTag=!BatFileTag:”="! echo !BatFileTag! endlocal ``` - ダブルクォーテーションを含む変数を別のコマンドに渡す場合は、ダブルクォーテーションをエスケープする必要があります³。例えば、 ```bat set BatFileTag=”test3“ echo ^"%BatFileTag%^" ``` http://mevius.5ch.net/test/read.cgi/tech/1663153441/276
277: デフォルトの名無しさん [] 2023/05/09(火) 05:44:21.88 ID:uZ4E3DcQ 続き これらの方法はどれも期待通りに動作しますか?😊 ソース: Bing との会話 2023/5/9 (1) バッチで変数にダブルクオーテーションを格納したい. https://teratail.com/questions/259883. (2) バッチファイルで変数を複数行にわけて指定したときのダブル .... https://ja.stackoverflow.com/questions/65968/%e3%83%90%e3%83%83%e3%83%81%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a7%e5%a4%89%e6%95%b0%e3%82%92%e8%a4%87%e6%95%b0%e8%a1%8c%e3%81%ab%e3%82%8f%e3%81%91%e3%81%a6%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e3%81%a8%e3%81%8d%e3%81%ae%e3%83%80%e3%83%96%e3%83%ab%e3%82%af%e3%82%a9%e3%83%bc%e3%83%86%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%ae%e6%8c%87%e5%ae%9a%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6. (3) バッチファイルのダブルクォート地獄を回避する方法 - Qiita. https://qiita.com/pochy9n/items/7079f3f13849dcafb969. http://mevius.5ch.net/test/read.cgi/tech/1663153441/277
278: デフォルトの名無しさん [] 2023/05/09(火) 05:55:08.97 ID:uZ4E3DcQ いいえ。まだ問題があります。 サンプルのどこにも全角のダブルクォーテーションがでてきません すみません、サンプルの全角のダブルクォーテーションは見えにくいかもしれませんが、実際にはあります。 コピーしてテキストエディタに貼り付けてみてください。 半角のダブルクォーテーションと比べると、全角のダブルクォーテーションは少し太くて長いです。😊 だそうだ スマホだとわからんわ http://mevius.5ch.net/test/read.cgi/tech/1663153441/278
279: デフォルトの名無しさん [] 2023/05/09(火) 05:56:33.76 ID:uZ4E3DcQ バッチの中身もオレはちゃんと読んでないんでBingが意図を正しく理解したかも確認してない http://mevius.5ch.net/test/read.cgi/tech/1663153441/279
280: デフォルトの名無しさん [] 2023/05/09(火) 05:59:48.56 ID:uZ4E3DcQ リンクのコピペに失敗したやつはこれ https://teratail.com/questions/259883?ssp=1&darkschemeovr=1&setlang=ja-JP&safesearch=moderate https://qiita.com/pochy9n/items/7079f3f13849dcafb969?ssp=1&darkschemeovr=1&setlang=ja-JP&safesearch=moderate http://mevius.5ch.net/test/read.cgi/tech/1663153441/280
281: デフォルトの名無しさん [sage] 2023/05/09(火) 08:56:45.57 ID:bGbmh2Wb そんな難問なのか? set BatFileTag=“test1” set BatFileTag set BatFileTag=%BatFileTag:“="% set BatFileTag=%BatFileTag:”="% set BatFileTag http://mevius.5ch.net/test/read.cgi/tech/1663153441/281
282: デフォルトの名無しさん [sage] 2023/05/09(火) 09:15:19.23 ID:TEEc9Eeb >>275 変換結果を変数に格納してないだけじゃん set BatFileTag=”test1“ set "BatFileTag=%BatFileTag:“="%" set "BatFileTag=%BatFileTag:”="%" echo %BatFileTag% set BatFileTag=”test2“ set BatFileTag=%BatFileTag:“="% set BatFileTag=%BatFileTag:”="% echo %BatFileTag% http://mevius.5ch.net/test/read.cgi/tech/1663153441/282
283: デフォルトの名無しさん [] 2023/05/09(火) 12:45:29.09 ID:ZvIGeNCt >変換結果を変数に格納してないだけじゃん おっしゃる通りでした、そのコードで期待通り動作しました。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/283
284: デフォルトの名無しさん [sage] 2023/05/09(火) 12:54:13.19 ID:0Hn95uhF ケアレスミスやね 自分もよくある http://mevius.5ch.net/test/read.cgi/tech/1663153441/284
285: デフォルトの名無しさん [sage] 2023/05/09(火) 15:10:57.87 ID:cxHUCWoc 見覚えのある変数名だと思ったらDTV板の人か http://mevius.5ch.net/test/read.cgi/tech/1663153441/285
286: デフォルトの名無しさん [] 2023/05/10(水) 02:46:49.16 ID:7WScgW4R >>276 変数を`%%`で囲んで`set`コマンドで置換する場合、`%%`の前に`~`を付けるとダブルクォーテーションが除去されます え、ホント?と思って やってみたら バッチ パラメーターの置き換えで、パス演算子の次の使用法は無効です: %~BatFileTag% と出力されたんですが、できないですよね? >>285 EDCBの 録画タグ の話でした。。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/286
287: デフォルトの名無しさん [sage] 2023/05/10(水) 03:43:26.68 ID:fIRqc6o3 >>266 Ruby なら、 require 'json' # 改行を削除する。削除しなくても同じ結果 input_json_str = <<'JSON'.delete( "\n" ) [{"ID": 1,"Level": 50, "Status": {"idx":1}}, {"ID": 1,"Level": 100, "Status": {"idx":2}}, {"ID": 2,"Level": 50, "Status": {"idx":3}}, {"ID": 3,"Level": 50, "Status": {"idx":4}}, {"ID": 3,"Level": 100, "Status": {"idx":5}}] JSON input_json_obj = JSON.parse( input_json_str ) # ID でグループ化して、最大Level のものを取得する result = input_json_obj.group_by { |hash| hash[ "ID" ] }.map do |row| row[ 1 ].max_by { |hash| hash[ "Level" ] } end p result 出力 [ {"ID"=>1, "Level"=>100, "Status"=>{"idx"=>2}}, {"ID"=>2, "Level"=>50, "Status"=>{"idx"=>3}}, {"ID"=>3, "Level"=>100, "Status"=>{"idx"=>5}} ] http://mevius.5ch.net/test/read.cgi/tech/1663153441/287
288: デフォルトの名無しさん [sage] 2023/05/10(水) 07:27:54.84 ID:7bNTa4KZ >>286 エラー表示で 「CALL /?」または「FOR /?」 とあるだろ それ見ると %~ の使い方がわかるよ どちらにせよ全角の引用符は消えない AIがまだポンコツだし、その翻訳もおかしいので あまり参考にならない http://mevius.5ch.net/test/read.cgi/tech/1663153441/288
289: デフォルトの名無しさん [] 2023/05/10(水) 17:07:25.20 ID:7WScgW4R >>288 ありがとうございます、ヘルプを参照しました。 %~0 で 周りを囲んだダブルクォーテーションは除去できる、 %~BatFileTag% は 構文エラー、ですね。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/289
290: デフォルトの名無しさん [sage] 2023/05/10(水) 19:56:46.59 ID:8YKnH4aX for文の%%iみたいな変数に入れても%0とかと同じように操作できるよ。 いずれにしても全角ダブルクォーテーションは除去できないけど http://mevius.5ch.net/test/read.cgi/tech/1663153441/290
291: デフォルトの名無しさん [] 2023/05/10(水) 23:36:37.50 ID:7WScgW4R バッチスクリプトの引数参照(?)の展開を 通常の変数でも使いたい時ありますよね。 forを使えば、わざわざ関数に渡さなくていいってことですよね。覚えておきます。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/291
292: デフォルトの名無しさん [sage] 2023/05/14(日) 01:53:53.57 ID:4Al5Gork ばっちこーい! http://mevius.5ch.net/test/read.cgi/tech/1663153441/292
293: デフォルトの名無しさん [sage] 2023/05/21(日) 15:26:18.55 ID:/zBPnU/J Sendtoに置いたバッチがある。 ここに複数のファイルを送り、それぞれのパスをプログラムに送りたい。 送った複数のファイル、はどう表現すればいいのでしょうか。 @echo off for %%F in (*.jpg) do call :sub "%%F" goto :EOF :sub echo "C:\hoge.exe" "%~dpnx1" goto :EOF sub以下は様子見コード http://mevius.5ch.net/test/read.cgi/tech/1663153441/293
294: デフォルトの名無しさん [sage] 2023/05/21(日) 15:31:45.83 ID:WLjUQB8s shift /? http://mevius.5ch.net/test/read.cgi/tech/1663153441/294
295: デフォルトの名無しさん [sage] 2023/05/21(日) 16:33:43.21 ID:uxeKp44S 何したいか若干よくわからないけど、 hoge.exeに引数全部一気に与えたいなら%*と書くと全部与えられる。 そうじゃなくて、 hoge.exe %1 hoge.exe %2 ... とそれぞれを1つずつ与えたいなら shiftを使ってずらして%1の中身が無くなるまでループさせる。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/295
296: デフォルトの名無しさん [sage] 2023/05/21(日) 17:33:53.16 ID:/zBPnU/J >>295 ありがとう、それがわからなかった。 何がやりたいのかわからないのはたぶん echoとpauseのところですよね(^^; もともとはググって見つけたフォトショ関係のバッチのコピペで、「複数ファイルできます!」って 書いてあるのに1つ送っても2つ送ってもそのファイルのフォルダ全部処理しちゃうので 様子見のために書き換えて、%%Fがおかしいんじゃ?とたどり着いて詰んだところでした。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/296
297: デフォルトの名無しさん [sage] 2023/05/21(日) 18:06:23.90 ID:/vzELmbQ *.jpg を %* でも良さそう? http://mevius.5ch.net/test/read.cgi/tech/1663153441/297
298: デフォルトの名無しさん [sage] 2023/05/29(月) 17:17:55.21 ID:MDtfdjpW head abc.txt はエラーになるが head abc,txt >con とすると実行できた、なぜだろう? head.exeは2003年のもの http://mevius.5ch.net/test/read.cgi/tech/1663153441/298
299: デフォルトの名無しさん [sage] 2023/05/30(火) 09:18:57.94 ID:8/1/VW9e 環境もエラーメッセージも書いてくれてないしコマンドはtypoっぽいしでさっぱりだが head.exeの標準入出力処理やらコンソール描画エリアサイズ取得やらに問題があるが 標準出力がリダイレクトされてることでその問題のある処理をスキップできてるとかじゃないの http://mevius.5ch.net/test/read.cgi/tech/1663153441/299
300: デフォルトの名無しさん [sage] 2023/05/30(火) 09:27:21.04 ID:bxkrR6Df 別のhead.exeを持ってくれば? 俺のPCに入ってた msysの奴(2004/03/16) Gitの奴(2017/02/14) ではどっちもhead file名で表示される http://mevius.5ch.net/test/read.cgi/tech/1663153441/300
301: デフォルトの名無しさん [sage] 2023/05/30(火) 09:59:41.15 ID:flkBlmPK >>300 ありがとう 古すぎたんだ、取り替えよう http://mevius.5ch.net/test/read.cgi/tech/1663153441/301
302: デフォルトの名無しさん [] 2023/06/08(木) 04:51:39.25 ID:qSJ8V+Su 初心者です 一桁のだけ出力されません set m=1 と出すにはどうしたらいいでしょうか? よろしくお願いいたします echo off set MEMO_OUT=memo.bat echo set m=333>%MEMO_OUT% echo set m=22>>%MEMO_OUT% echo set m=1>>%MEMO_OUT% echo set メモ>>%MEMO_OUT% pause ----sub.batの結果----- set m=333 set m=22 set m= set メモ ------------------------ http://mevius.5ch.net/test/read.cgi/tech/1663153441/302
303: デフォルトの名無しさん [] 2023/06/08(木) 04:54:13.59 ID:qSJ8V+Su こちらでした ----memo.batの結果----- set m=333 set m=22 set m= set メモ ------------------------ http://mevius.5ch.net/test/read.cgi/tech/1663153441/303
304: デフォルトの名無しさん [sage] 2023/06/08(木) 05:51:11.43 ID:/rH9ZSQw set m=^1>>%MEMO_OUT% set "m=1">>%MEMO_OUT% http://mevius.5ch.net/test/read.cgi/tech/1663153441/304
305: デフォルトの名無しさん [] 2023/06/08(木) 07:04:40.20 ID:qSJ8V+Su 304様♪ echo set m=^1>>%MEMO_OUT% で無事に解決できました! 本当にありがとうございました(*- -)(*_ _)ペコリ http://mevius.5ch.net/test/read.cgi/tech/1663153441/305
306: デフォルトの名無しさん [sage] 2023/06/08(木) 08:47:23.51 ID:vkPB32fx echo 2>>hoge.txt みたいな事したくてハマったの思い出した http://mevius.5ch.net/test/read.cgi/tech/1663153441/306
307: デフォルトの名無しさん [sage] 2023/06/08(木) 10:00:57.29 ID:OrtrngoT 自分は前置する事が多い。少数派みたいだけど。 > %MEMO_OUT% echo set m=333 >> %MEMO_OUT% echo set m=22 >> %MEMO_OUT% echo set m=1 >> %MEMO_OUT% echo set メモ http://mevius.5ch.net/test/read.cgi/tech/1663153441/307
308: デフォルトの名無しさん [sage] 2023/06/08(木) 23:07:14.14 ID:5yq6DBkZ (echo set m=1)>>%MEMO_OUT% for %%i in ("m=333" "m=22" "m=1" "メモ") do echo set %%~i>>%MEMO_OUT% http://mevius.5ch.net/test/read.cgi/tech/1663153441/308
309: デフォルトの名無しさん [sage] 2023/06/09(金) 07:12:36.29 ID:XYYWFLgO >>307 (´・∀・`)ヘー これは初見 利用の際の注意点は無いの? http://mevius.5ch.net/test/read.cgi/tech/1663153441/309
310: デフォルトの名無しさん [sage] 2023/06/09(金) 14:04:54.27 ID:du40Kh/C マイナーってこと以外の注意点はないと思う。 しいて言えばコマンドプロンプト上だと プロンプトの「C:\>」とくっついて見づらくなるくらい。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/310
311: デフォルトの名無しさん [sage] 2023/06/09(金) 14:10:41.30 ID:iiwkTFZp 今までこのスレか関連スレで何度かは出てきてはいるけどね http://mevius.5ch.net/test/read.cgi/tech/1663153441/311
312: デフォルトの名無しさん [] 2023/06/10(土) 00:40:56.87 ID:ZROvKvT1 バッチファイルでIPアドレスの変更をしようとしており、 変更前に現在設定されているアドレスを表示させたいです。 本来であればipconfigから抽出すれば良いのですが、ネットワーク接続されていない状況では表示されません。 netsh interface ipv4 show ipaddress "イーサネット"でIPアドレスが表示されることまでは分かったのですが、 その他とmanualで2種類表示されてしまい、manualのIPアドレスのみ抽出したいです。 また、サブネットマスクも表示させたいですが何か表示できるコマンドをご存じないでしょうか。 皆様のお力をお貸しいただきたいです。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/312
313: デフォルトの名無しさん [sage] 2023/06/10(土) 10:54:45.64 ID:DPE/PSj9 >>312 固定IPならレジストリに保存されてるけど、抽出がめんどくさいですね。 HKLM\system\CurrentControlSet\control\network 配下から(イーサネットとか)インターフェース名のGUIDを拾って HKLM\system\CurrentControlSet\services\Tcpip\Parameters\Interfaces 配下でGUID検索する http://mevius.5ch.net/test/read.cgi/tech/1663153441/313
314: デフォルトの名無しさん [sage] 2023/06/10(土) 15:04:03.48 ID:FuIdwErj >>309 The redirection can come anywhere on the line, so watch out for those spaces https://devblogs.microsoft.com/oldnewthing/20170731-00/?p=96715 http://mevius.5ch.net/test/read.cgi/tech/1663153441/314
315: デフォルトの名無しさん [sage] 2023/06/10(土) 16:12:52.95 ID:v3IkKBaD >>314 勉強になりました http://mevius.5ch.net/test/read.cgi/tech/1663153441/315
316: デフォルトの名無しさん [sage] 2023/06/10(土) 17:59:46.69 ID:Yvl44ooC >>313 GUID検索出てくるともうpowershellでちゃんとやった方がええな うまくすると数行で書けるし http://mevius.5ch.net/test/read.cgi/tech/1663153441/316
317: デフォルトの名無しさん [] 2023/06/11(日) 00:20:40.75 ID:8nVmCa0A >>313 312です。ご教示いただきありがとうございます。 レジストリを確認すると確かにGUIDに応じて固定IPが設定されているのを確認できました。 しかし初心者過ぎてどうすれば値を引っ張ってこれる文になるのか分かりません。 もし可能であれば”イーサネット”のIPを引いてこれる文を教えていただけませんでしょうか。 スレ違い、勉強不足で申し訳ありません。よろしくお願いいたします。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/317
318: デフォルトの名無しさん [sage] 2023/06/11(日) 01:18:07.90 ID:ficsZH/3 "イーサネット"もOSで別のネットワークアダプタとして認識されると末尾に番号が付くから決め打ちは危険かも http://mevius.5ch.net/test/read.cgi/tech/1663153441/318
319: デフォルトの名無しさん [sage] 2023/06/12(月) 07:36:14.80 ID:+mHefy5G PowerShell で、 $guid = "{GUID-1 〜 XXX}" $a = "HKLM\SYSTEM\CurrentControlSet\Control\Network\{GUID-2 〜 YYY}\"+ $guid +"\Connection"; $b = "HKLM\system\CurrentControlSet\services\Tcpip\Parameters\Interfaces\" + $guid reg query $a /v "Name"; reg query $b /v "DhcpSubnetMask" 出力 Name REG_SZ イーサネット DhcpSubnetMask REG_SZ 255.255.255.0 http://mevius.5ch.net/test/read.cgi/tech/1663153441/319
320: デフォルトの名無しさん [sage] 2023/06/13(火) 10:09:20.96 ID:RNzu8ICZ ググっても書式バラバラだわ実行したらエラーメッセージ出るわ、もうわからん助けて・・・。 やりたいこと:ファイル名ごとに渡すプログラムを変えたい。 わからないこと: if 変数==内容(分岐処理)でいいのか、if 変数==内容 分岐処理なのかサイトによってバラバラだし どっちにしてもelseなんて定義されてねーよばーかって出てしまう。 条件分岐の書式を教えてください。 参考にしたサイトの1つ:www.javadrive.jp/command/bat/index8.html 希望する処理内容: 処理用フォルダを丸ごとBatファイルにSendto ファイル名にcoが含まれるJPG、Webp、PNGは、cov.exeに投げる ファイル名にautoが含まれるJPG、Webp、PNGは、auro.exeに投げる ファイル名にrecが含まれるJPG、Webp、PNGは、rec.exeに投げる 今書いてる内容:これでelse?は?と言われる https://imepic.jp/20230613/364730 http://mevius.5ch.net/test/read.cgi/tech/1663153441/320
321: デフォルトの名無しさん [sage] 2023/06/13(火) 10:11:36.00 ID:RNzu8ICZ まちがえた、こっち https://imepic.jp/20230613/366750 http://mevius.5ch.net/test/read.cgi/tech/1663153441/321
322: デフォルトの名無しさん [sage] 2023/06/13(火) 10:14:16.97 ID:sYfPkaoR C++でランチャー作るほうが楽そう http://mevius.5ch.net/test/read.cgi/tech/1663153441/322
323: デフォルトの名無しさん [sage] 2023/06/13(火) 10:19:37.96 ID:v41Gwse2 >>320 画像が見えないけど 多分、if文が終了しててelseが単独で出てくるのでエラーになってるんだと思う 下のように書けば問題ないはず if 変数==文字列 ( 処理群 ) else ( 処理群 ) if 変数==文字列 処理 else 処理 if 変数==文字列 処理 else ( 処理群 ) こういうのはエラーになる if 変数==文字列 (処理) else (命令) http://mevius.5ch.net/test/read.cgi/tech/1663153441/323
324: デフォルトの名無しさん [sage] 2023/06/13(火) 10:23:02.74 ID:xwoVSiEY 見えんけどbatの分岐はgoto使え http://mevius.5ch.net/test/read.cgi/tech/1663153441/324
325: 320 [sage] 2023/06/13(火) 10:32:32.52 ID:RNzu8ICZ ごめんー(::) https://imepic.jp/20230613/377460 GOTOまぜちゃってるせいかな・・・ (これも実は初めて知った処理だったりする・・・ http://mevius.5ch.net/test/read.cgi/tech/1663153441/325
326: デフォルトの名無しさん [sage] 2023/06/13(火) 10:36:13.21 ID:RNzu8ICZ 書式いろいろあるんですね・・・ Perl風にelsifって書いてみたりしました(苦笑) >if 変数==文字列 処理 else 処理 >if 変数==文字列 処理 else ( >処理群 >) 処理が1行で終わる場合は上、複数行にわたるなら下という理解でいいですか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/326
327: デフォルトの名無しさん [sage] 2023/06/13(火) 10:52:25.04 ID:xwoVSiEY 素人に()を使いこなすのは無理 if で * なんか使えるわけね~だろ もっと高級な言語で作ってから出直せ http://mevius.5ch.net/test/read.cgi/tech/1663153441/327
328: デフォルトの名無しさん [sage] 2023/06/13(火) 11:10:48.21 ID:RNzu8ICZ >>327 そうなんですねorz その辺ググっても取っ散らかってて情報が・・・なんかもう・・・ごめん Batファイルはファイルの移動・コピー・フォルダ一括作成・formatくらいしか使ったことなくてねorz エクスプローラでファイル名検索→複数のBatファイルとかやってるのすら面倒になったところなんだが 堪能に使えるプログラム言語はないのでもうしょうがないかなorz http://mevius.5ch.net/test/read.cgi/tech/1663153441/328
329: デフォルトの名無しさん [sage] 2023/06/13(火) 11:28:39.90 ID:v41Gwse2 >>328 こんな感じでいいのでは? :loop set fname=%~1 shift if not defined fname goto :eof if "%fname:~0,2%" equ "ac" "c:\cov.exe" ~ if "%fname:~0,2%" equ "au" "c:\auro.exe" ~ timeout 1 goto :loop 又は if "%fname:ac=%" neq "%fname%" "c:\cov.exe" ~ http://mevius.5ch.net/test/read.cgi/tech/1663153441/329
330: デフォルトの名無しさん [sage] 2023/06/13(火) 13:37:35.35 ID:lkLOH6hL 素直にif文書くとこんなん。※インデントは全角スペース :loop_begin if "%~1" == "" goto loop_end echo,%~nx1| findstr /ri /c:"co" >nul 2>nul if not errorlevel 1 ( cov.exe "%~dpnx1" ) else ( echo,%~nx1| findstr /ri /c:"auto" >nul 2>nul if not errorlevel 1 ( auto.exe "%~dpnx1" ) else ( echo,%~nx1| findstr /ri /c:"rec" >nul 2>nul if not errorlevel 1 ( rec.exe "%~dpnx1" ) ) ) shift & goto loop_begin :loop_end Perl知ってるなら大丈夫だと思うけど 「を含む」じゃなくて「で始まる」なら>>329か「^」を付け「/c:"^co"」とかに。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/330
331: デフォルトの名無しさん [sage] 2023/06/13(火) 13:47:29.71 ID:lkLOH6hL 「&&」と「||」使うとこう。※記述量は減るがマイナー。 echo,%~nx1| findstr /ri /c:"co" >nul 2>nul && ( cov.exe "%~dpnx1" ) || ( echo,%~nx1| findstr /ri /c:"auto" >nul 2>nul && ( auto.exe "%~dpnx1" ) || ( echo,%~nx1| findstr /ri /c:"rec" >nul 2>nul && ( rec.exe "%~dpnx1" ) ) ) フラグ使うとこう。 set result= for %%A in (rec auto co) do ( echo,%~nx1| findstr /ri /c:"%%A" >nul 2>nul && set result=%%A ) if "!result!" == "co" cov.exe "%%~dpnx1" if "!result!" == "auto" auto.exe "%%~dpnx1" if "!result!" == "rec" rec.exe "%%~dpnx1" 複数マッチする事がない、または複数マッチして複数実行してよいなら バッチにディレクトリパス渡してこう。(gotoのループ無し) for %%A in ("%~1\*co*") do (cov.exe "%%~A") for %%A in ("%~1\*auto*") do (auto.exe "%%~A") for %%A in ("%~1\*rec*") do (rec.exe "%%~A") http://mevius.5ch.net/test/read.cgi/tech/1663153441/331
332: デフォルトの名無しさん [sage] 2023/06/13(火) 16:32:40.78 ID:3egukpPD 文字列に特定の文字列が含まれるかを見たいときに私なら if not "%aaa%"=="%aaa:foo=%" (処理) と、元の文字列の入った変数から特定の文字列を抜き取ったときに イコールにならないことで含まれてることを判断してるんだけど これってマイナーなのかな? http://mevius.5ch.net/test/read.cgi/tech/1663153441/332
333: デフォルトの名無しさん [sage] 2023/06/13(火) 18:38:43.90 ID:lkLOH6hL >>329もその方法だし、マイナーって事はないと思う。 if文本体だとANDとかORを表現し辛くて自分はfindstrにしがち。 今回だと拡張子の条件(jpg, jpeg, webp, png?)のいずれかにマッチしたら目的の処理、 またはいずれにもマッチしなかったらgoto next_loop、みたいな場合に楽。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/333
334: デフォルトの名無しさん [sage] 2023/06/13(火) 19:02:49.89 ID:/Xa1+9fb >>331 「&&」と「||」ってそういう書き方出来るんだ知らなかった http://mevius.5ch.net/test/read.cgi/tech/1663153441/334
335: 328 [sage] 2023/06/14(水) 00:17:35.54 ID:l4KAyHVD >>329-333 いろんな書き方があるんですね・・・ありがとうございます。 (1)とか(2)があるとスルーされるので、また調べます。 感謝! http://mevius.5ch.net/test/read.cgi/tech/1663153441/335
336: デフォルトの名無しさん [sage] 2023/06/14(水) 01:04:20.11 ID:8vZ7BVQu PowerShell を使いな 漏れは、Ruby だけど http://mevius.5ch.net/test/read.cgi/tech/1663153441/336
337: デフォルトの名無しさん [sage] 2023/06/15(木) 07:11:35.58 ID:VQiSmQhF terapadなつい テキストコピペでいいのになぜ画像 http://mevius.5ch.net/test/read.cgi/tech/1663153441/337
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 531 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s