PowerShell에서 폴더가 존재하는지 확인하는 방법

  1. PowerShell에서 폴더가 존재하는지 확인하기 위한 Test-Path Cmdlet 사용하기
  2. PowerShell에서 폴더가 존재하는지 확인하기 위한 System.IO.Directory 사용하기
  3. PowerShell에서 폴더가 존재하는지 확인하기 위한 Get-Item Cmdlet 사용하기
  4. 결론
PowerShell에서 폴더가 존재하는지 확인하는 방법

PowerShell은 다양한 파일 및 폴더 작업을 수행할 수 있는 강력한 도구입니다. 이를 통해 시스템에서 파일과 폴더를 만들고, 복사하고, 이동하고, 이름을 바꾸고, 삭제하고, 볼 수 있습니다.

파일 및 폴더 관리는 PowerShell의 기능으로, 사용자가 이러한 엔티티를 조작할 수 있을 뿐만 아니라 시스템 내 존재를 확인할 수 있습니다. 이 튜토리얼에서는 PowerShell을 사용하여 시스템에서 폴더의 존재를 확인하는 다양한 방법을 탐색할 것입니다.

PowerShell에서 폴더가 존재하는지 확인하기 위한 Test-Path Cmdlet 사용하기

Test-Path cmdlet은 PowerShell에서 모든 경로 요소가 존재하는지를 결정합니다. 모든 요소가 존재할 경우 True를 반환하고, 하나라도 누락된 경우 False를 반환합니다.

구문:

Test-Path -Path "C:\Path\to\Folder"

매개변수:

  • -Path: 이 매개변수는 존재 여부를 확인하고자 하는 폴더 또는 파일의 경로를 나타냅니다. 이 경우, "C:\Path\to\Folder"로 설정되어 있으며, 해당 경로에 위치한 폴더의 존재 여부를 확인하고자 함을 나타냅니다.

예를 들어, 다음 명령은 경로 C:\New\complex의 모든 요소가 존재하는지 확인합니다.

Test-Path -Path "C:\New\complex"

출력:

True

이는 complex 폴더가 C:\New 디렉터리에 존재함을 의미합니다.

다음 명령은 C:\New 디렉터리에 Documents 폴더가 존재하는지 확인합니다.

Test-Path -Path "C:\New\Documents"

출력:

False

따라서 Documents 폴더는 C:\New 디렉터리에 존재하지 않습니다.

True/False 대신 자세한 정보를 반환하고 싶다면 다음과 같이 if 문을 사용할 수 있습니다.

if (Test-Path -Path "C:\New\Documents") {
    Write-Host "The given folder exists."
}
else {
    Write-Host "The given folder does not exist."
}

이 코드에서는 Test-Path cmdlet을 사용하여 "C:\New\Documents" 폴더가 시스템에 존재하는지 확인합니다. 폴더가 존재하면 Write-Host를 사용하여 "The given folder exists"를 출력합니다.

폴더가 존재하지 않으면 콘솔에 "The given folder does not exist"를 출력합니다.

출력:

The given folder does not exist.

결과적으로 "C:\New\Documents" 폴더는 시스템에 존재하지 않으며, Test-Path cmdlet이 False를 반환하게 됩니다. 우리의 코드는 else 블록을 트리거하여 콘솔에 "The given folder does not exist." 메시지를 표시합니다.

이 출력은 제공된 경로 내에서 지정된 폴더가 위치하지 않았음을 정확하게 나타냅니다.

PowerShell에서 폴더가 존재하는지 확인하기 위한 System.IO.Directory 사용하기

.NET 프레임워크의 System.IO.Directory 클래스는 디렉터리 및 하위 디렉터리를 생성, 이동, 삭제 및 열거하기 위한 정적 메서드를 제공합니다. 제공된 경로가 시스템에 이미 존재하는 디렉터리를 나타내는지 확인하기 위해 Exists() 메서드를 사용할 수 있습니다.

존재하는 경우 True를 반환하고 존재하지 않는 경우 False를 반환합니다.

[System.IO.Directory]::Exists("C:\New\complex")

출력:

True

[System.IO.Directory]::Exists("C:\New\complex")는 사용되는 매개변수가 없습니다. 대신, PowerShell에서 폴더가 존재하는지를 확인하기 위해 메서드를 직접 호출하고 있습니다.

이제 C:\New 디렉터리에 Documents 폴더가 존재하는지 확인해 봅시다.

[System.IO.Directory]::Exists("C:\New\Documents")

위 명령에서 우리는 폴더 존재 여부를 확인하기 위해 "System.IO.Directory"라는 .NET 프레임워크를 사용하고 있습니다. 이 도구에는 이 작업을 도와주는 "Exists()"라는 기능이 있습니다.

"C:\New\Documents" 위치를 살펴보고 거기에 폴더가 있는지 확인하도록 지시합니다. 폴더를 찾은 경우 True를 반환하지만, 폴더가 존재하지 않으면 False를 반환합니다.

출력:

False

출력은 "False"입니다. 이는 System.IO.Directory::Exists()가 지정된 경로에 "C:\New\Documents" 폴더가 존재하지 않음을 나타냅니다.

PowerShell에서 폴더가 존재하는지 확인하기 위한 Get-Item Cmdlet 사용하기

Get-Item은 주어진 경로에 있는 항목을 가져옵니다. 경로가 시스템에 존재하면 디렉터리의 Mode, LastWriteTime, Length, Name을 출력합니다.

Get-Item C:\Users\Public

이 명령에서는 C:\Users\Public에 위치한 Public 폴더에 대한 정보를 가져오고 있습니다. PowerShell에서 이 명령을 실행하면 콘솔에 폴더와 관련된 다양한 세부정보가 표시됩니다.

출력:

    Directory: C:\Users


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r---        10/15/2023   6:35 PM                Public

지정된 경로가 존재하지 않으면 존재하지 않는다는 오류 메시지가 나타납니다. 다음 예시와 같습니다.

Get-Item C:\Users\Publics

출력:

Get-Item : Cannot find path 'C:\Users\Publics' because it does not exist.
At line:1 char:1
+ Get-Item C:\Users\Publics
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Publics:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand

결론

이러한 접근 방식은 PowerShell에서 폴더 존재 여부를 확인하는 다양한 방법을 제공하며, 특정 요구 사항에 맞게 수정할 수 있습니다. 이러한 기술은 폴더에만 적용되는 것이 아니라, 시스템 내 파일의 존재 여부를 확인하는 데에도 사용할 수 있습니다.

이 기사가 PowerShell에서 폴더의 존재 여부를 확인하는 방법에 대한 아이디어를 제공했기를 바랍니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell Folder