【.cmd】 バッチファイルスクリプト %15 【.bat】 (768レス)
前次1-
抽出解除 レス栞

133: デフォルトの名無しさん [sage] 2023/01/03(火) 21:56:54.70 ID:krBOweAa(1) AAS
>>128
128(3): デフォルトの名無しさん [sage] 2023/01/03(火) 15:27:36.49 ID:VP4Ca8Qj(1) AAS
勝手な想像だけどgoto関数かラベルの次の行がカッコになってるパターンだと思う
goto :AAA
)
とか
:AAA
)
バッチファイルは実行時に1行になって解釈されるからこういう書き方だと例えば
else (goto :AAA)
となって閉じ括弧までがラベルの一部と解釈される
簡単な回避策としては括弧の前の行にremを挿入する
横から失礼。よく分からない。再現できない
522
(1): デフォルトの名無しさん [] 2024/04/24(水) 02:18:02.70 ID:K1wg6IoP(1) AAS
バッチファイルでExecutablePathにToolsを含むzebedee.exeというプロセスをkillしたいのだが、

for /f "usebackq tokens=2 delims==" %%A in (`WMIC PROCESS WHERE "Name='zebedee.exe' and ExecutablePath like '%%Tools%%'" get ProcessId /VALUE ^| find "="`) do (
taskkill /F /pid %%A
)

だと
D:\Tools\zebedee>(
taskkill /F /pid 21252
)
エラー: 無効なクエリです

となってしまう。

for /f "usebackq tokens=2 delims==" %%A in (`WMIC PROCESS WHERE "Name='zebedee.exe' and ExecutablePath like '%%Tools%%'" get ProcessId /VALUE ^| find "="`) do (
set PID=%%A
)
taskkill /F /pid %PID%
だと成功する。

forの中にtaskkillて書けないの?
「エラー: 無効なクエリです」てWMICのエラーだから、forとWMICとtaskkillの問題?
571: デフォルトの名無しさん [sage] 2024/10/12(土) 17:39:10.70 ID:Iy6RGAFA(1/2) AAS
状態を持たせたいならバッチの名前を変えるという荒業もできるね
590: デフォルトの名無しさん [] 2024/11/08(金) 03:24:29.70 ID:NHkTpL6A(4/5) AAS
rdコマンドで親フォルダを削除しないようにするにはどう書けば良いのでしょうか?
595: デフォルトの名無しさん [sage] 2024/11/08(金) 23:02:21.70 ID:gP+dh+BC(1) AAS
del /q "新しいフォルダー\*"
for /d %%i in ("新しいフォルダー\*") do rd /s /q "%%~i"
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

続く
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s