[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
842: デフォルトの名無しさん [sage] 2018/09/20(木) 06:54:59.39 ID:SZObeV+C 謎仕様だなあ... http://mevius.5ch.net/test/read.cgi/tech/1489207631/842
843: デフォルトの名無しさん [sage] 2018/09/21(金) 03:25:46.77 ID:q2E2aQh+ また謎です shiftすると%1は変わるが、%*は変わらない http://mevius.5ch.net/test/read.cgi/tech/1489207631/843
844: デフォルトの名無しさん [sage] 2018/10/03(水) 12:55:17.46 ID:kms9X1pz 表示は出来るが、代入が一部だけ出来ない整数値があったよ @echo off setlocal enabledelayedexpansion set /a "a=1<<31" set /a b=a set /a c=%a% set /a d=!a! echo a=%a% echo b=%b% echo c=%c% echo d=%d% pause 結果は a=-2147483648 b=-2147483648 c= d= http://mevius.5ch.net/test/read.cgi/tech/1489207631/844
845: デフォルトの名無しさん [sage] 2018/10/05(金) 06:58:30.40 ID:Iu01kfl1 setlocal enabledelayedexpansion set /a "a=1,b_!a!=2" set b_ で、 b_0=2 何か変だが、こういう仕様なのか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/845
846: デフォルトの名無しさん [sage] 2018/10/05(金) 08:53:46.57 ID:vSWfZutq ,で分けてあってもsetコマンドは1つだけなので複数コマンドとは思われてないってことなんだろうね setlocal enabledelayedexpansion set /a a=1 & set b_!a!=2 set b_!a! なら大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1489207631/846
847: デフォルトの名無しさん [sage] 2018/10/05(金) 17:03:33.33 ID:Iu01kfl1 >>846 ありがとうございます !a! は set /a 実行直前の値でした setlocal enabledelayedexpansion set /a a=0 for /L %%i in (1,1,3) do set /a "a=%%i,b=a,c=!a!,d=%a%" & echo !a! !b! !c! !d! 1 1 0 0 2 2 1 0 3 3 2 0 http://mevius.5ch.net/test/read.cgi/tech/1489207631/847
848: デフォルトの名無しさん [sage] 2018/10/05(金) 17:27:41.95 ID:vSWfZutq setlocal enabledelayedexpansion set /a a=0 for /L %%i in (1,1,3) do ( set /a a=%%i &set /a b=a &set /a c=!a! &set /a d=%a% &echo !a! !b! !c! !d! ) なら 1 1 1 0 2 2 2 0 3 3 3 0 となる。 bへの値代入が!抜きのaでできるって知らなかったわ… 謎挙動。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/848
849: デフォルトの名無しさん [sage] 2018/10/05(金) 18:09:57.00 ID:Iu01kfl1 set /a で %a% や !a! はあまり使用しない方が良さそうだ % や ! は演算子に含まれる文字で紛らわしいし 展開のタイミングで予想外の挙動するし 展開時に >>844 のように特異値でエラーになったりするし 値参照は変数名だけでいい http://mevius.5ch.net/test/read.cgi/tech/1489207631/849
850: デフォルトの名無しさん [sage] 2018/10/05(金) 18:17:00.44 ID:vSWfZutq ご自由に。それより某グラマー御用達QAサイトのトップ回答者様が書くバッチがgoto :EOF 多用で頭痛い http://mevius.5ch.net/test/read.cgi/tech/1489207631/850
851: デフォルトの名無しさん [sage] 2018/10/05(金) 18:26:50.86 ID:Iu01kfl1 俺もよく使うよ、goto :eof http://mevius.5ch.net/test/read.cgi/tech/1489207631/851
852: デフォルトの名無しさん [sage] 2018/10/05(金) 18:28:05.47 ID:hOPHqLcn >>850 何か問題が? goto :endとかより遥かにいいと思うが http://mevius.5ch.net/test/read.cgi/tech/1489207631/852
853: デフォルトの名無しさん [sage] 2018/10/05(金) 18:33:02.62 ID:Iu01kfl1 goto その物が多いとか言われた事も http://mevius.5ch.net/test/read.cgi/tech/1489207631/853
854: デフォルトの名無しさん [sage] 2018/10/05(金) 18:46:17.97 ID:vSWfZutq 自分だと大抵 {メインルーチン} goto :EOF :sub1 {サブルーチン12} exit /b :sub2 {サブルーチン} exit /b と書くことが多い。 トップ回答者様は {メインルーチン} goto :EOF :sub1 {サブルーチン} goto :EOF sub2 {サブルーチン} goto :EOF と回答されている。サブルーチンの下のはgoto は不要だし慣れない。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/854
855: デフォルトの名無しさん [sage] 2018/10/05(金) 19:02:53.79 ID:Iu01kfl1 戻り値なけりゃどっちでもいい様な気がするが 逆に exit を避けてる人もいるよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/855
856: デフォルトの名無しさん [sage] 2018/10/05(金) 19:53:21.88 ID:LaGwhHU8 俺もgoto派だな http://mevius.5ch.net/test/read.cgi/tech/1489207631/856
857: デフォルトの名無しさん [sage] 2018/10/05(金) 21:35:58.50 ID:RB/KKRkK gotoは見通しが悪くなるから、極力使わないようにしてる 他の主流の言語だと使えないものが多いから、必然的にそういう書き方に慣れてしまった http://mevius.5ch.net/test/read.cgi/tech/1489207631/857
858: デフォルトの名無しさん [sage] 2018/10/05(金) 23:49:53.55 ID:8nMQUHh9 goto は使わないに越したことはない。 が、制御構文が貧弱な言語では、熟慮の上で使わざるを得ない場面で使う。 が正解。 詳しくはWikipediaで。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/858
859: デフォルトの名無しさん [sage] 2018/10/05(金) 23:56:24.52 ID:qkvvR9Zs Cでもgotoは使うよね http://mevius.5ch.net/test/read.cgi/tech/1489207631/859
860: デフォルトの名無しさん [sage] 2018/10/05(金) 23:58:44.47 ID:8nMQUHh9 C言語にはMISRAとかいう規約があるが無視していい。 あれは組み込み分野だけの特殊なものだと思っていい。 大抵の人間は、「これは思考からはぶいていい」という書き方の方が読みやすい。 だから、「これは戻すか終わらせる」と書いていっていい。 そうすれば、残ったものに集中できるだろ? まぁ、日ごろ「自分が辞めた後にこれを読まされる人間が困らないかどうか」って考えて書いてるかどうかってことだ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/860
861: デフォルトの名無しさん [sage] 2018/10/06(土) 16:39:29.59 ID:P4YKYACU あちこちでreturnするのもスパゲッティなgotoと大差がない気がするんだ テロ的というか http://mevius.5ch.net/test/read.cgi/tech/1489207631/861
862: デフォルトの名無しさん [sage] 2018/10/06(土) 17:10:22.17 ID:GNiE4xH/ 字面が違うだけで同じだろ http://mevius.5ch.net/test/read.cgi/tech/1489207631/862
863: デフォルトの名無しさん [sage] 2018/10/06(土) 20:28:48.17 ID:gea8Zy97 gotoもイディオムに従って使えば混乱しない バッチファイルだとforの方が理解不能で害悪 http://mevius.5ch.net/test/read.cgi/tech/1489207631/863
864: デフォルトの名無しさん [sage] 2018/10/06(土) 23:02:20.58 ID:tgEP6apu gotoがゴーゴーに見えた http://mevius.5ch.net/test/read.cgi/tech/1489207631/864
865: デフォルトの名無しさん [sage] 2018/10/06(土) 23:12:15.45 ID:uJ87E9Rb >>860-861 IPAの出してるMISRAの解説書のreturnは1か所にしろというルール、 あれはクソofクソのルールだと思うね。early returnこそ正義 Cとbatの書き方は全然比較にならないけど http://mevius.5ch.net/test/read.cgi/tech/1489207631/865
866: デフォルトの名無しさん [] 2018/10/07(日) 00:27:12.50 ID:pbh8RIqN >>861 むしろ goto の良い使い方と言われている制限が、return をまねたもの。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/866
867: デフォルトの名無しさん [] 2018/10/07(日) 11:03:03.39 ID:Bzp9uIq0 バッチファイルかパワーシェルでIPv4のIPアドレスのみを取得して環境変数に代入するにはどういうコマンドになりますか? 教えてください http://mevius.5ch.net/test/read.cgi/tech/1489207631/867
868: デフォルトの名無しさん [sage] 2018/10/07(日) 12:00:15.70 ID:6qmhFN/2 「powershell ip address」で検索! http://mevius.5ch.net/test/read.cgi/tech/1489207631/868
869: デフォルトの名無しさん [sage] 2018/10/07(日) 12:28:26.52 ID:VwaVbKnV >>867 環境変数IPAddressに192を含んだIPアドレスを代入するサンプル(PowerShell 2.0併用) set CMD=powershell -command "& {ipconfig |? {$_ -match 'IP.*: 192\.'}|% {$_ -replace '.*: (\d+\.\d+\.\d+\.\d+)','$1'}}" for /f "usebackq delims=" %%a in (`%CMD%`) do set IPAddress=%%a echo %IPAddress% PowerShell部分はipconfigの結果から正規表現でIPと: 192という文字を含む行を抽出 抽出した行のIPアドレス部分のみ正規表現の置換で抽出といった感じ PowerShell3.0以降だともうちょっと素直に書ける感じだけど http://mevius.5ch.net/test/read.cgi/tech/1489207631/869
870: デフォルトの名無しさん [sage] 2018/10/07(日) 12:53:16.71 ID:Dedwpgqn アダプタが1つだけならこんなでいいんじゃね? setlocal enabledelayedexpansion for /f "tokens=2 delims=:" %%a in ('ipconfig ^|find "IPv4"') do set IPADRESS=%%a set IPADRESS=%IPADRESS:~1% echo %IPADRESS% http://mevius.5ch.net/test/read.cgi/tech/1489207631/870
871: デフォルトの名無しさん [] 2018/10/07(日) 12:54:26.67 ID:Bzp9uIq0 この処理作るのにバッチとパワーシェル組み合わせないとできないんですか? ip取得するだけでも結構大変なのですね http://mevius.5ch.net/test/read.cgi/tech/1489207631/871
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 131 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s