スペースを含むスケジュールされたタスク名を削除する

スペースを含むスケジュールされたタスク名を削除する

「Adobe Acrobat」で始まるスケジュールされたタスク(例:「Adobe Acrobat 123」、「Adobe Acrobat 456」、「Adobe Acrobat 789」)を削除したい

schtasks /Delete /TN Adobe* /F

このコマンドは、文字通りタスク名「Adobe*」を検索するため、タスクを見つけることができません。

for /f %%x in ('schtasks /query ^| findstr Adobe') do schtasks /Delete /TN %%x /F

これはスペースのないタスク名に対してのみ機能します。たとえば、「AdobeAcorbat123」のタスク名のみを検索します。

「Adobe」で始まり、スペースを含む名前を持つすべてのスケジュールされたタスクを削除するにはどうすればよいですか?

答え1

代わりにこれを試してください:

for /f "tokens=1*" %%a in ('schtasks /query /fo list ^| findstr /r "TaskName.*Adobe"') do schtasks /delete /tn "%%b" /f

検索文字列部分はregex(正規表現)を使用して、出力から文字列「TaskName」と「Adobe」を含む行のみを抽出します。タスクfor /fこれは(詳細は参照)によってトークン化されfor /?、2番目のトークンにはタスクへのフルパス(スペースを含む)が抽出され、別のタスク当該タスクを削除するコマンド。

関連情報