[過去ログ] 【.cmd】 バッチファイルスクリプト %14 【.bat】 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
782
(1): デフォルトの名無しさん [sage] 2022/05/23(月) 07:47:47.45 ID:Lvn387tn(1/4) AAS
forのin部で wmic を使って文字列取得しようとするとdo以後のコマンド類がバグる
for /f "tokens=2 delims==" %%a in ('wmic process where "name=\"hoge.exe\"" get CommandLine /value 2^>nul^|find "CommandLine"') do set RUNEXE=%%a
と最小限に留めたらecho on でプロンプトが削れて表示は少しおかしいものの一応動作はした
でも「バグってるものがたまたま動いてるだけ」の状態が心情的に嫌なので代替手段があれば教えて欲しい
やりたい事は特定のexeが実行中か否か
D:\app\a\hoge.exe が実行中かどうかを調べたいとして
D:\app\b\hoge.exe のような別ディレクトリにある同名のexeは実行中でもOK
tasklistだとhoge.exeが稼働してるかどうかは調べられるけどどのディレクトリのモノまでかは特定不能のよう
783: デフォルトの名無しさん [sage] 2022/05/23(月) 07:58:02.47 ID:Lvn387tn(2/4) AAS
forで取らずにリダイレクトして一旦TMPファイルに書き出せば良いんだろうけどなんか負けた気がするのでそれは最終手段
785: デフォルトの名無しさん [sage] 2022/05/23(月) 09:32:45.04 ID:Lvn387tn(3/4) AAS
>>784
784(2): デフォルトの名無しさん [] 2022/05/23(月) 09:22:19.13 ID:vgqZRn8w(1) AAS
パイプを犯人扱いしてfor内でifしちゃうのもありかな?

あと細かいけど"set RUNEXE=%%~a"としないとスペースとかで死ぬ
パスにスペースを含む場合、%%~aが利かない
頭の"だけ除かれてケツの"だけが残る罠
あとパイプ無くてもバグる
786
(1): デフォルトの名無しさん [sage] 2022/05/23(月) 12:58:34.94 ID:Lvn387tn(4/4) AAS
自己解決
> %%~aが利かない
はケツにスペース入ってたから
バグるのは文字コード上の問題のよう
外部リンク[html]:scripting.cocolog-nifty.com
パイプだと改行コードがおかしくなるだけらしいけどその後のコマンド類がおかしくなるのは不明
URL先の説明にあるように直接ファイルへリダイレクトしてtypeで読めばバグらないようになった
wmic process where "name='hoge.exe'" get CommandLine 2>nul >$tmp.txt
for /f "delims=" %%a in ('type $tmp.txt^|find ":"') do for %%b in (%%a) do set "s=%%~b"
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s