Windows 명령 프롬프트를 사용하여 특정 파일을 제외한 모든 파일 삭제하기

Windows 명령 프롬프트는 많은 사용자에게 다소 어려워 보일 수 있지만, 명령어에 대한 기본적인 이해를 가지고 있으면 매우 강력한 도구가 됩니다. 이 글에서는 특정 파일을 제외한 모든 파일을 쉽게 삭제하는 방법을 설명할 것입니다. 이는 파일 정리나 배치 프로세스 자동화에 매우 유용할 수 있습니다.

목차

단계 1: 명령 프롬프트의 기본 작업

먼저, 명령 프롬프트를 시작하는 방법부터 알아보겠습니다. Windows 키 + R을 눌러 “실행” 대화 상자를 열고, ‘cmd’를 입력한 다음 Enter를 누릅니다. 이렇게 하면 명령 프롬프트가 실행됩니다.

디렉터리 변경하기

명령 프롬프트에서 작업을 시작하기 전에 작업하려는 디렉터리(폴더)로 이동해야 합니다. 이를 위해 cd 명령어를 사용합니다. 예를 들어, Documents 폴더로 이동하려면 다음과 같이 입력합니다.

cd C:\Users\<YourUsername>\Documents

파일 및 디렉터리 나열하기

현재 디렉터리의 파일과 하위 디렉터리 목록을 표시하려면 dir 명령을 사용합니다. 이 명령은 작업을 수행하기 전에 대상이 되는 파일을 확인하는 데 유용합니다.

명령 실행하기

명령 프롬프트에서는 파일과 디렉터리에 작업을 수행하기 위해 다양한 명령을 실행할 수 있습니다. 파일을 삭제하기 위해 del 명령을 사용하고, 디렉터리를 삭제하기 위해 rmdir 또는 rd 명령을 사용합니다. 이 글의 뒷부분에서 이에 대해 자세히 설명하겠습니다.

이러한 기본 명령 작업을 이해하면 Windows 명령 프롬프트를 사용하여 더 복잡한 작업을 효율적으로 처리할 수 있습니다. 다음 섹션에서는 특정 파일을 제외한 모든 파일을 삭제하는 방법에 대해 자세히 살펴보겠습니다.

단계 2: 특정 파일을 제외하고 파일 나열하기

Windows 명령 프롬프트를 사용하여 특정 파일을 제외하고 나머지를 나열하는 것은 파일 관리나 특정 작업을 준비하는 데 매우 도움이 될 수 있습니다. 이 단계에서는 목록에서 특정 기준을 충족하지 않는 파일을 제외하는 방법을 설명합니다.

findstr 명령 사용하기

파일을 나열할 때 특정 파일을 제외하는 한 가지 방법은 dir 명령과 findstr 명령을 결합하는 것입니다. 여기서는 예로서 .txt 확장자를 가진 파일을 목록에서 제외하는 방법을 살펴보겠습니다.

dir | findstr /v /i ".txt$"

이 명령은 현재 디렉터리의 파일 목록을 dir 명령으로 가져오고 그 출력을 findstr 명령으로 파이핑합니다. /v 옵션은 지정된 패턴과 일치하지 않는 줄만 표시합니다. /i 옵션은 대소문자를 구분하지 않는 검색을 수행합니다. ".txt$"는 .txt로 끝나는 줄을 검색하는 정규 표현식입니다.

여러 파일을 제외해야 할 경우

여러 확장자나 특정 조건을 제외하고 싶다면 findstr 명령의 검색 패턴을 확장할 수 있습니다. 예를 들어, .txt.docx 파일을 제외하려면 다음 명령을 실행합니다.

dir | findstr /v /i "\.txt$ \.docx$"

이 방법을 사용하면 특정 기준을 충족하지 않는 파일을 효율적으로 제외할 수 있어 원하는 파일을 빠르게 식별할 수 있습니다. 명령 프롬프트에서 파일 관리가 더 유연하고 효율적이 됩니다.

주의

명령 프롬프트에서 이러한 명령을 사용할 때는 정확한 파일 이름이나 패턴을 지정하는 것이 중요합니다. 잘못된 패턴을 지정하면 예상치 못한 파일이 목록에서 제외될 수 있습니다. 또한, 작업을 진행하기 전에 명령의 출력을 주의 깊게 확인하여 예상한 결과가 나타나는지 확인하세요.

단계 3: for 명령을 사용한 조건부 파일 삭제

Windows 명령 프롬프트에서 특정 파일을 제외한 모든 파일을 삭제하려면, 복잡한 조건을 쉽게 처리할 수 있는 for 명령을 사용할 수 있습니다. 이 단계에서는 특정 조건을 충족하는 파일에 대해 삭제 작업을 수행하는 방법을 사용하는 for 명령에 대해 설명합니다.

for 명령의 기본 문법

for 명령의 기본 문법은 다음과 같습니다.

for %variable in (set) do command [command-parameters]

이 명령은 주어진 ‘집합’의 각 항목에 대해 지정된 명령을 실행하며, 변수를 사용하여 각 항목의 값을 일시적으로 저장합니다.

특정 파일을 제외한 모든 파일 삭제하기

예를 들어, 디렉터리에서 .txt 파일을 제외한 모든 파일을 삭제하려면 다음 명령을 사용합니다.

for %i in (*.*) do if not "%~xi" == ".txt" del "%i"

이 명령은 현재 디렉터리의 모든 파일(*.*로 지정됨)을 순회하며 파일의 확장자가 .txt가 아니면 파일을 삭제합니다(if not "%~xi" == ".txt" 부분). %i는 현재 처리 중인 파일의 이름을 나타내고, %~xi는 파일의 확장자를 나타냅니다.

주의

명령 프롬프트에서 이 명령을 실행할 때는 중요한 파일을 실수로 삭제하지 않도록 매우 주의해야 합니다. 또한, 이 명령을 배치 파일(.bat) 내에서 사용하는 경우 변수에 대한 퍼센트 기호를 두 배로 해야 합니다(예: %%i).

이 단계를 따르면 명령 프롬프트에서 복잡한 파일 작업을 유연하게 처리할 수 있습니다. 특정 조건에 따라 파일을 효율적으로 관리하는 방법을 이해하면 Windows 환경에서 작업 흐름을 크게 개선할 수 있습니다.

단계 4: 스크립트 적용 예제

Windows 명령 프롬프트에서 배운 명령을 적용하여 더 복잡한 작업을 자동화하기 위한 스크립트 예제를 소개하는 이 섹션에서는 특정 기준을 충족하는 파일을 백업하는 스크립트를 만드는 방법을 설명합니다.

백업 스크립트 만들기

이 스크립트는 특정 파일 유형의 파일을 검색하여 다른 디렉터리로 복사합니다. 예를 들어, 문서 파일(.docx)을 자동으로 백업하는 것을 고려해 보세요.

스크립트 내용

@echo off
setlocal enabledelayedexpansion
set "sourceDir=C:\Users\<YourUsername>\Documents"
set "backupDir=C:\Backup"
set "fileType=.docx"

for /r "%sourceDir%" %%i in (*%fileType%) do (
    set "filePath=%%i"
    set "backupPath=!filePath:%sourceDir%=%backupDir%!"
    echo Copying "!filePath!" to "!backupPath!"
    copy "!filePath!" "!backupPath!"
)
echo Backup complete.

이 배치 파일은 지정된 파일 유형(fileType, 여기서는 .docx)의 파일을 지정된 소스 디렉터리(sourceDir)에서 검색하고 백업 디렉터리(backupDir)로 복사합니다.

스크립트 작동 설명

for /r 루프는 소스 디렉터리와 그 하위 디렉터리에서 모든 .docx 파일을 재귀적으로 검색합니다. 찾은 각 파일에 대해 소스 디렉터리의 경로를 백업 디렉터리의 경로로 대체하고 copy 명령을 사용하여 파일을 복사합니다.

스크립트 실행 방법

이 스크립트를 실행하려면 위의 코드를 텍스트 편집기에 붙여넣고 .bat 확장자로 저장합니다(예: backupDocs.bat). 그런 다음 이 배치 파일을 명령 프롬프트에서 실행하면 문서가 자동으로 백업됩니다.

주의

스크립트를 실행하기 전에 소스 및 백업 디렉터리의 경로를 올바르게 설정했는지 확인하세요. 또한, 중요한 데이터를 다룰 때는 스크립트의 작동 방식을 이해하고 실수로 데이터 손실을 방지하기 위해 테스트를 수행하는 것이 중요합니다.

명령 프롬프트에서 스크립트를 적용하면 일상적인 작업의 효율성을 크게 향상시킬 수 있습니다. 이 예제를 참조하여 자신의 필요에 맞는 스크립트를 만드세요.

연습: 명령 프롬프트를 사용하여 특정 확장자의 파일만 남기는 스크립트 만들기

특정 확장자를 가진 파일만 특정 디렉터리에 남기고 모든 다른 파일을 삭제하는 스크립트를 명령 프롬프트를 사용하여 만드는 것이 과제입니다. 예를 들어, .txt 확장자를 가진 파일만 남기려고 합니다.

해설: 연습 문제의 해결 방법 및 자세한 설명

이 작업을 수행하려면 다음 명령을 사용합니다.

for /r %i in (*) do if not "%~xi" == ".txt" del "%i"

이 명령은 현재 디렉터리와 그 하위 디렉터리의 모든 파일(*)을 순회합니다. 각 파일에 대해, 파일의 확장자가 .txt가 아니면 파일을 삭제합니다.

%i는 루프에서 현재 처리 중인 파일을 나타내며, %~xi는 파일의 확장자를 가져오는 데 사용됩니다. 조건 if not "%~xi" == ".txt"는 확장자가 .txt가 아닐 경우 참이 됩니다(따라서 파일이 삭제됩니다).

주의

이 명령을 실행하기 전에 중요한 파일을 실수로 삭제하지 않도록 매우 주의해야 합니다. 또한, 이 명령을 배치 파일 안에서 사용하는 경우 변수에 대한 퍼센트 기호를 두 배로 해야 합니다(예: %%i).

결론

명령 프롬프트를 사용하여 특정 파일을 제외한 모든 파일을 삭제하는 것은 파일 관리에 매우 유용합니다. 이 연습을 통해 Windows 명령 프롬프트에서 파일 작업의 기본을 이해하고 적용하는 방법을 배웠습니다. 실행하는 명령의 영향을 항상 이해하고 중요한 데이터를 보호하기 위한 조치를 취하세요. 이 지식을 사용하여 일상 작업을 더 효율적으로 만드세요.

목차