
「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番目のトークンにはタスクへのフルパス(スペースを含む)が抽出され、別のタスク当該タスクを削除するコマンド。