【.cmd】 バッチファイルスクリプト %15 【.bat】 (960レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.io/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
953: デフォルトの名無しさん [] 2026/04/15(水) 19:54:56.95 ID:r6S5gYIq 入力チェックの概念がないことに驚く http://mevius.5ch.io/test/read.cgi/tech/1663153441/953
954: デフォルトの名無しさん [] 2026/04/15(水) 19:57:02.54 ID:r6S5gYIq >>952 変数に初期値を設定するのは悪習慣 http://mevius.5ch.io/test/read.cgi/tech/1663153441/954
955: デフォルトの名無しさん [] 2026/04/15(水) 19:57:51.97 ID:r6S5gYIq >>948 はよく見るとネストしまくっているド素人だな http://mevius.5ch.io/test/read.cgi/tech/1663153441/955
956: デフォルトの名無しさん [sage] 2026/04/16(木) 03:45:00.88 ID:Tn//Fa1q choiceの現実的な使い方 for /f "usebackq" %%i in (`choice /n /c QABC`) do set item=%%~i http://mevius.5ch.io/test/read.cgi/tech/1663153441/956
957: 948 [sage] 2026/04/16(木) 12:12:15.01 ID:2FlBY5v4 >955 ド素人です。 >>954 そうなんですか? でも変数に初期値を設定しないと 書いた>948元のベースで複数文字の入力分岐もやっています。 入力後にメニュー戻りした次に未入力でエンターすると前回入力が残って同じ処理に入ってしまう なので変数に初期値を設定するようにしています。 >>956 それは単1文字以外に'CLR'とか複数文字入力混在の分岐もいけますか? http://mevius.5ch.io/test/read.cgi/tech/1663153441/957
958: デフォルトの名無しさん [sage] 2026/04/16(木) 23:38:20.04 ID:UfvpdfWz 偉そうにいちゃもん付けてる奴はスルーでいいから http://mevius.5ch.io/test/read.cgi/tech/1663153441/958
959: デフォルトの名無しさん [sage] 2026/04/18(土) 01:51:29.77 ID:wodX6Uui findstrでならasciiか2バイト文字かの判別を出来るけどね findstrの正規表現の . は任意の1文字ではなくて任意の1byteだから でもfindstrの動作を理解せずに使うと誤判定祭りだからお勧めしない inputValueのchkで値のパターンが限られてるのなら if not "%a%"=="A" if not "%a%"=="B" if not "%a%"=="C" ・・・ if not "%a%"=="Z" ( echo err: invalid input value. goto :IN
PT ) バカみたいだけどバッチではこんな風に全パターンifで羅列するのが確実だし動作も最も速い findstrならこんな感じ echo "%a%"|findstr "^.[A-Z].$" >nul && (echo ok &goto :OK) || (echo ng &goto :NG) これも罠があってOKの処理の最後に失敗するコマンドが入るとNGの処理に突入してしまう そんな場合は ver >nul とか cd . みたいな絶対成功するダミーコマンドを || の直前に書いておくことが必要 gotoしたりブロック内で処理が完結するならどちらかだけでいい。直後は暗黙的に逆の処理だからね 自分の場合、&&はし
ないことが多い http://mevius.5ch.io/test/read.cgi/tech/1663153441/959
960: デフォルトの名無しさん [sage] 2026/04/19(日) 09:20:07.23 ID:wKsrhzcO choiceで変な文字を入力させない、が正解だとは思うけど利用可能なドライブから選択させた方がスマートじゃない? @echo off for /f "tokens=1-27 delims=:\ " %%@ in ('fsutil fsinfo drives') do set "drv=%%A%%B%%C%%D%%E%%F%%G%%H%%I%%J%%K%%L%%M%%N%%O%%P%%Q%%R%%S%%T%%U%%V%%W%%X%%Y%%Z" call set "drv=%%drv:%SystemDrive::=%=%%" if "%drv%"=="" echo ERROR: No available drives found.&echo Check the targ
et drive connection.&pause &exit /b 1 set /p <nul=ドライブを選択 [%drv%]: for /f %%a in ('choice /c %drv% /n') do set drv=%%a: echo %drv% pause http://mevius.5ch.io/test/read.cgi/tech/1663153441/960
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.857s*