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

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
523
(1): デフォルトの名無しさん [sage] 2024/04/24(水) 12:53:51.62 ID:cg/GbNoZ(1) AAS
>>522
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の問題?
WMICはパイプを使うと改行がCR CR LFとなって、%%A に正しく設定できていないのでだめっぽい。
SETするとCRが削除されてうまくいくようです。
というわけで、いったんリダイレクトしてファイルにするとよいでしょう。

^| find "="

^>T ^&^& find "=" T
525
(1): デフォルトの名無しさん [] 2024/04/26(金) 01:53:35.81 ID:WIIBP3hh(1/2) AAS
>>523
for /f %%A in ('wmic process where ^( Name like 'zebedee.exe' and ExecutablePath like '%%Tools%%'^) get processid') do (
taskkill /F /pid %%A
)

これで出来た。エラーするけど。
なんでMSのコマンドって不要なものを消せないのかね。
Linuxだと情報だけを表示するオプションがあるのに。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.027s