[過去ログ] 【.cmd】 バッチファイルスクリプト %15 【.bat】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
959(1): 04/18(土)01:51 ID:wodX6Uui(1) AAS
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 :INPT
)
バカみたいだけどバッチではこんな風に全パターンifで羅列するのが確実だし動作も最も速い
findstrならこんな感じ
echo "%a%"|findstr "^.[A-Z].$" >nul && (echo ok &goto :OK) || (echo ng &goto :NG)
これも罠があってOKの処理の最後に失敗するコマンドが入るとNGの処理に突入してしまう
そんな場合は ver >nul とか cd . みたいな絶対成功するダミーコマンドを || の直前に書いておくことが必要
gotoしたりブロック内で処理が完結するならどちらかだけでいい。直後は暗黙的に逆の処理だからね
自分の場合、&&はしないことが多い
961(2): [age] 04/20(月)21:23 ID:UVl60nvN(1) AAS
>959
2バイト文字込み判別はぐっちゃになりそうですよねー
>>960
ありがとうございます。
そして全く理解が追い付いていないので質問ですが
C:WinOS System(SATA SSD) , D:USBメモリ , W:PCIeスロット増設 NVMe SSD というドライブ構成例で実行すると
ドライブを選択 [DW]:
(W:はリムーバブル設定にはしていないのですが) Cを除いて表示されます。
3行目%%A%〜%%Zから%%Cを除くと[D]だけとなり
ドライブを選択 [D]:
3行目%%A%〜%%Zから%%A%%B%%Cを除くと[C=]になります。
ドライブを選択 [C=]:
特定のドライブ文字'ABC'を除外して'C'を入力したら
echo [ c ] キャンセル: メインメニューに戻る
if "%drv%"=="C" goto MainMenu
飛ばせるようにするにはどうしたら良いのでしょうか?
専門板に思い切ってファイルを晒すにはド素人ソースで躊躇われ
今は >951 系をベースにset前 fsutil fsinfo drives 追加で有効ドライブ表示足してお茶濁し中・・・
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s