【.cmd】 バッチファイルスクリプト %15 【.bat】 (960レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.io/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
947: デフォルトの名無しさん [] 2026/04/06(月) 17:47:12.77 ID:5bemAIxm >>944 フォルダ名はバッチファイル内で指定する robocopyはオプションに/MIRなどを指定する http://mevius.5ch.io/test/read.cgi/tech/1663153441/947
948: デフォルトの名無しさん [age] 2026/04/13(月) 10:04:41.11 ID:3POC0siT 以下のバッチでは全角文字を入力されてしまうと1文字で通ってしまいます。 Google検索では入力文字をバイト数で調べる例は一度ファイルに書き出す例ばかりヒットします。 余分なファイルを書き出すのは忌避されるのでそのまま全角でも入力文字のバイト数を調べる方法はありませんか? :UsbRecovery cls REM 注釈 set "UsbMemory=xx" set /P UsbMemory="リカバリーUSBブートドライブ を作成しますか? ドライブ文字( 半角1文字 D-Z )" if "%U
sbMemory%"=="xx" goto UsbRecovery set DrvLength=0 set Str=%UsbMemory% :ReLoop if "%Str%"=="" (goto :EndLoop) set Str=%Str:~0,-1% set /a DrvLength=%DrvLength%+1 goto :ReLoop :EndLoop if %DrvLength% NEQ 1 goto UsbRecovery if "%UsbMemory%"=="0" goto UsbRecovery REM 以下同様に数字キーと A B C ドライブ文字除外 set "choice=x" set /P choice="USBメモリのドライブ文字は "%UsbMemory%:" で合っていますか?(y/n) " http://mevius.5ch.io
/test/read.cgi/tech/1663153441/948
949: デフォルトの名無しさん [sage] 2026/04/13(月) 10:33:11.80 ID:zNJlHy3K ドライブ文字が正しいのか判別するためにバイト数でチェックする事に拘らなければ良いと思うよ 所詮26文字しかないのだから http://mevius.5ch.io/test/read.cgi/tech/1663153441/949
950: デフォルトの名無しさん [sage] 2026/04/13(月) 10:59:30.02 ID:0qPiOmXR choice使えば http://mevius.5ch.io/test/read.cgi/tech/1663153441/950
951: デフォルトの名無しさん [sage] 2026/04/13(月) 15:09:59.92 ID:2xoIGF5V set DrvList=DEFGHIJKLMNOPQRSTUVWXYZ :input choice /c DEFGHIJKLMNOPQRSTUVWXYZ /n /m "リカバリーUSBブートドライブ を作成しますか? ドライブ文字( 半角1文字 D-Z )" if ERRORLEVEL 255 goto :eof if ERRORLEVEL 1 goto :chkDrv if ERRORLEVEL 0 goto :eof :chkDrv set /a index=%ERRORLEVEL%-1 call set Drv=%%DrvList:~%index%,1%% echo %Drv% if exist "%Drv%:\." goto :start echo ご指定のドライブ(%Drv%:)は存在しません choice /n /
m "もう一度選択しますか?" if ERRORLEVEL 2 goto :eof goto :input :start http://mevius.5ch.io/test/read.cgi/tech/1663153441/951
952: 948 [sage] 2026/04/13(月) 21:54:35.01 ID:3POC0siT >>951 さん ありがとう! それでいけました。 アスキーコード数値にできないか?とか沼りかけていたので助かりました。 http://mevius.5ch.io/test/read.cgi/tech/1663153441/952
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.036s