【.cmd】 バッチファイルスクリプト %15 【.bat】 (772レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
35: デフォルトの名無しさん [] 2022/10/13(木) 18:33:52.32 ID:Fb+ro4ZF(1) AAS
UIから起動されたCMDからのバッチなのか判別する方法ありますか?LinuxでいうTERMみたいな
430: デフォルトの名無しさん [] 2023/09/01(金) 14:16:49.32 ID:8Q6o7DlX(1) AAS
cmd /k
463: デフォルトの名無しさん [sage] 2023/10/30(月) 00:54:06.32 ID:S4fhwBsv(1) AAS
ダブルクォーテーションで囲まれた"%PATH%"が1つの引数としてForに渡されて1つ目の区切り文字に達するまでを出力してるからそうなる
1つずつ取り出したいならダブルクォーテーションを消せば良いがそれだと半角スペースも区切り文字に判定されるから
簡単にやろうと思ったらまず半角スペースを別の文字に置換してからダブルクォーテーション無しで渡してその後半角スペースを元に戻すとかかな
556(3): デフォルトの名無しさん [sage] 2024/06/20(木) 06:56:43.32 ID:oAthcLJ7(1) AAS
私が普段使っているドラッグアンドドロップ用バッチのサンプルです
@echo off & set a="%cmdcmdline:"=%"& set "arg="
for /f "tokens=3* delims=:" %%i in (%a%) do (set a=%%i& set b=%%j)
set "a=%a:~-1%" & set b="%b::=" "%"
for %%i in (%b%) do set b=%%i& call :x
goto y
:x
if defined arg set arg=%arg:~0,-3%"
set arg=%arg% "%a%:%b:~1%& exit /b
:y
echo コマンド %arg%
pause & exit
727(1): デフォルトの名無しさん [] 2025/06/13(金) 23:37:10.32 ID:lvrE3au7(1) AAS
>>725725(1): デフォルトの名無しさん [] 2025/06/13(金) 11:27:20.00 ID:QWIL1FR+(2/2) AAS
通りすがりで正直なにしてるのかわからんけど、もしかしてやりたいのはこゆこと?
@echo off
setlocal
set ARGS=
set ORIG_ARGS=%*
call :main %ORIG_ARGS: =[全角空白]%
goto :eof
:main
if x%1 == x goto :sort
set ARG=%1
set ARG=%ARG:[全角空白]= %
if not %ARG:~0,1%%ARG:~0,1% == "" set ARG="%ARG%"
set ARGS=%ARGS% %ARG%
shift
goto :main
:sort
for /F "delims=" %%F in ('dir /S/B/OD %ARGS%') do echo コマンド "%%F"
pause
試してみました
パスに全角スペースや半角スペースがあっても対応できるようですね
似たような方法を使ってるバッチをQiitaで見たことがあります
上手に回避できてると思いますがパスに&があると問題があります
%1 や %* では限界がある感じがするわ
743(1): デフォルトの名無しさん [sage] 2025/06/16(月) 12:56:05.32 ID:h70+cne9(1/2) AAS
昔はD&Dなんて無かったからなあ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s