시스템 예약 작업을 선택적으로 삭제

시스템 예약 작업을 선택적으로 삭제

Windows 7 상자에는 예약된 작업 목록이 있습니다 - > 기본 Windows 작업 + 모두 특정 문자열로 시작하는 특정 사용자 지정 작업. 이전 코드는 다음 명령을 사용하여 모든 작업을 삭제했습니다.

schtasks /Delete /TN * /F

대신 우리는 기본 Windows 작업을 유지하고 특정 문자열(예: )로 시작하는 작업을 선택적으로 삭제하려고 합니다 abctask1. abctask2더 진행하는 방법은 무엇입니까? 감사해요!

답변1

작업이 한 단어(예: abctask1, abctask2 - "abc task 1"이 아님)라고 가정하면 다음과 같이 작동합니다.

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

답변2

삭제할 작업을 선택할 때 와일드카드(*)를 사용하려면 다음 간단한 일괄 명령을 사용해 보십시오.

(샘플만)

echo off
del %SystemDrive%\Windows\Tasks\Google*
del %SystemDrive%\Windows\Tasks\Facebook*

답변3

일부 Windows 예약 작업을 자동으로 비활성화하는 방법을 찾다가 여기에 왔습니다. 백슬래시와 공백이 포함된 작업 이름을 올바르게 처리하는 현재 예제를 얻을 수 없습니다. 나는 csv 형식과 find 명령을 사용하는 것이 나에게 가장 적합하다는 것을 알았습니다.

for /f "tokens=1 delims=," %%x in ('schtasks /query /fo csv ^| find "\Microsoft\Windows\Application Experience\"') do schtasks /Delete /TN %%x /F

답변4

Mark의 대답은 예약된 작업 이름이 상당히 짧은 한 잘 작동하지만 schtasks /query(테이블 형식)의 기본 출력은 작업 이름을 32자로 자르므로 삭제하려고 할 때 오류가 발생합니다.

이름이 더 긴 작업을 처리해야 하는 경우 대신 잘리지 않는 목록 출력 형식을 사용하는 것이 좋습니다.

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr abctask') do schtasks /Delete /TN %%x /F

삭제하려는 작업에 공통 접두사가 있는 경우 findstr에서 일치 항목을 더욱 구체화할 수 있습니다.

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr ^^abctask') do schtasks /Delete /TN %%x /F

관련 정보