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

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에서 폴더의 존재 여부를 확인하는 방법에 대한 아이디어를 제공했기를 바랍니다.