【.cmd】 バッチファイルスクリプト %15 【.bat】 (760レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
730(2): デフォルトの名無しさん [] 2025/06/14(土) 08:25:15.70 ID:yDCgYQHw(1/4) AAS
なるほど、あれの/Cオプションの引数にはあるけれど、あれがバッチに渡さないわけね
理解したんで あれ起動時のコマンドラインを愚直にパースするとこんな感じか
@echo off
setlocal enableDelayedExpansion
set CMDLINE=!CMDCMDLINE:*cmd" ="!
set Q="
set "S= "
set i=1
set ARG=
:loop
if !CMDLINE:~%i%! == !Q! goto :pause
set c=!CMDLINE:~%i%,1!
if !c! == !Q! (
call :Q
) else if not !c! == !S! (
call :NQ
) else (
set /a i += 1
)
goto :loop
続く
731(1): デフォルトの名無しさん [] 2025/06/14(土) 08:25:56.73 ID:yDCgYQHw(2/4) AAS
:Q
set ARG=!ARG!!c!
set /a i += 1
set c=!CMDLINE:~%i%,1!
if not !c! == !Q! goto :Q
set ARG=!ARG!!Q!
call :exec
set ARG=
set /a i += 1
goto :eof
:NQ
set ARG=!ARG!!c!
set /a i += 1
set c=!CMDLINE:~%i%,1!
if not !c! == !Q! if not !c! == !S! goto :NQ
set ARG="!ARG!"
call :exec
set ARG=
goto :eof
:exec
echo コマンド !ARG!
goto :eof
:pause
pause
732: デフォルトの名無しさん [] 2025/06/14(土) 08:41:58.61 ID:yDCgYQHw(3/4) AAS
あ、ソート忘れたけどいいよね
文字化けするならforの前にchcp 65001入れておくれ
735: デフォルトの名無しさん [] 2025/06/14(土) 16:43:38.20 ID:yDCgYQHw(4/4) AAS
>>733733(1): デフォルトの名無しさん [] 2025/06/14(土) 15:14:17.65 ID:eF2X+eHO(1) AAS
なにかおかしいと思ってたんだが
これ拡張子が.cmd のバッチファイルを想定してあるんだな
.bat だと無限ループするから変だと思った
そういうことなら set CMDLINE= の行を
set CMDLINE=!CMDCMDLINE:*%~x0" ="!
にすれば .cmd でも .bat でも .Cmd でも .BAT でもおけだな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s