공급자 이름

FileSystem

드라이브

C, D

간단한 설명

파일 및 디렉터리에 대한 액세스를 제공합니다.

자세한 설명

Windows PowerShell 파일 시스템 공급자를 통해 Windows PowerShell에서 파일 및 디렉터리를 가져오고 추가, 변경 및 삭제할 수 있습니다.

파일 시스템 공급자는 네트워크 공유에 매핑된 드라이브를 포함하여 사용자 컴퓨터에 구성된 논리적 드라이브에 해당하는 Windows PowerShell 드라이브를 제공합니다. 예를 들어 플로피 디스크 드라이브, 하드 디스크 드라이브 및 매핑된 네트워크 공유 디렉터리가 각각 1개인 컴퓨터의 드라이브 이름은 A, C 및 Z일 수 있습니다. 파일 시스템 공급자는 Windows PowerShell에서 이러한 드라이브를 참조할 수 있도록 A, C 및 Z에 직접 대응하는 Windows PowerShell 드라이브를 제공합니다. 예를 들어 C 드라이브를 참조하려면 다음 예와 같이 C:를 사용합니다.

Get-ChildItem c:

이 명령은 파일 및 디렉터리를 포함하여 C 드라이브의 모든 내용을 반환합니다. FileSystem 공급자를 통해 특정 디렉터리나 파일을 참조하는 경우 해당 디렉터리나 파일을 식별하는 데 필요한 정보를 제공해야 합니다. 이는 경우에 따라 정규화된 이름을 제공해야 함을 의미합니다. 정규화된 이름에는 드라이브 이름(콜론과 함께 사용), 디렉터리 및 하위 디렉터리 이름, 파일 이름(해당되는 경우) 등이 포함됩니다. 예를 들어 다음 예에서는 Shell.dll 파일의 정규화된 이름을 보여 줍니다. 이 파일은 C 드라이브, Windows 디렉터리의 System32 하위 디렉터리에 있습니다.

c:\windows\system32\shell.dll

예를 보면 알 수 있듯이 정규화된 이름의 각 요소는 백슬래시(\)로 구분합니다. 또한 Windows PowerShell에서는 다른 셸과의 일관성을 유지하기 위해 슬래시(/)를 사용할 수 있습니다.

경우에 따라서는 파일 또는 디렉터리를 참조할 때 정규화된 이름을 제공하지 않아도 됩니다. 예를 들어 현재 작업 위치의 파일에 액세스하려면 파일 이름만 제공하면 됩니다. 현재 작업 위치가 c:\windows인 경우 다음 명령을 사용하여 해당 디렉터리의 모든 .dll 파일 목록을 볼 수 있습니다.

Get-ChildItem *.dll

c:\program files\Windows PowerShell과 같이 작업 디렉터리가 c:\windows가 아닌 경우에는 명령에 정규화된 이름을 포함해야 할 수도 있습니다.

Get-ChildItem c:\windows\*.dll

경우에 따라 위치에 대한 상대 참조를 사용할 수도 있습니다. 작업 위치가 c:\windows인 경우 c:\windows\system32 디렉터리의 .dll 파일 목록을 보려면 다음 명령을 사용할 수 있습니다.

Get-ChildItem .\system32\*.dll

\system32 앞의 마침표는 현재 작업 위치를 나타냅니다.

현재 작업 위치가 파일 시스템 드라이브가 아닌 다른 드라이브일 때도 있습니다. 이런 경우에는 참조에 대상 드라이브의 이름을 포함해야 합니다. 예를 들어 현재 작업 위치가 env: 드라이브라고 가정해 봅니다. 이 경우 C 드라이브의 내용을 보려면 다음 명령을 사용합니다.

Get-ChildItem c:

파일 시스템 탐색

-------------------------- 예제 1 --------------------------

이 명령은 현재 위치를 가져옵니다.

get-location

Get-Location cmdlet에는 Windows 명령 프롬프트의 cd 명령 및 UNIX의 pwd 명령과 같은 명령의 기능이 포함되어 있습니다. 자세한 내용을 보려면 다음을 입력하십시오. get-help get-location

-------------------------- 예제 2 --------------------------

이 명령은 현재 위치를 설정합니다.

set-location C:

파일 및 디렉터리 정보 가져오기

-------------------------- 예제 1 --------------------------

이 명령은 현재 디렉터리에 있는 모든 파일 및 디렉터리를 가져옵니다.

get-childitem

기본적으로 Get-ChildItem cmdlet은 재귀되지 않습니다. 이 명령을 실행할 때 현재 디렉터리에 파일과 폴더가 있는 경우 System.IO.FileInfo 개체와 System.IO.DirectoryInfo 개체가 반환됩니다.

-------------------------- 예제 2 --------------------------

이 명령은 Get-ChildItem을 사용하여 현재 디렉터리에 있는 모든 파일 및 디렉터리를 가져옵니다.

get-childitem | where-object {!$_.psiscontainer}

명령이 결과를 Where-Object로 파이프하고, Where-Object는 PSIsContainer 속성을 검사하여 컨테이너가 아닌(!) 개체만 파이프라인을 통해 전달되도록 합니다.

-------------------------- 예제 3 --------------------------

이 명령은 Get-ChildItem을 사용하여 현재 디렉터리에 있는 모든 파일 및 디렉터리를 가져옵니다. 명령이 결과를 Where-Object로 파이프하고, Where-Object는 PSIsContainer 속성을 검사하여 컨테이너인 개체만 파이프라인을 통해 전달되도록 합니다.

get-childitem | where-object {$_.psiscontainer}

-------------------------- 예제 4 --------------------------

이 명령은 Get-ChildItem을 사용하여 현재 디렉터리에 있는 모든 파일 및 디렉터리를 가져옵니다.

get-item -path a | format-list *

명령이 결과를 Where-Object cmdlet으로 파이프하고, 이 cmdlet은 PSIsContainer 속성을 검사하여 컨테이너인 개체만 파이프라인을 통해 전달되도록 합니다.

-------------------------- 예제 5 --------------------------

이 명령은 Get-Item cmdlet을 사용하여 Test.txt 파일에 대한 정보를 가져옵니다.

get-item -path test.txt | format-list *

Format-List cmdlet은 결과 개체의 모든 속성을 표시하는 데 사용됩니다.

파일 및 디렉터리 복사

-------------------------- 예제 1 --------------------------

이 명령은 C:\A 디렉터리에서 C:\A\Bb 디렉터리로 A.txt 파일을 복사합니다.

copy-item -path C:\a\a.txt -destination C:\a\bb\a.txt

이 명령은 확인 메시지 없이 대상 디렉터리의 파일을 덮어씁니다.

-------------------------- 예제 2 --------------------------

이 명령은 C:\A\Bb 디렉터리에서 파일 이름 확장명이 .txt인 모든 파일을 C:\A\Cc\Ccc\ 디렉터리로 복사합니다.

copy-item -path C:\a\bb\*.txt -destination C:\a\cc\ccc\

이 명령은 파일의 원래 이름을 사용합니다. 따라서 확인 메시지 없이 대상 디렉터리의 기존 파일을 덮어씁니다.

-------------------------- 예제 3 --------------------------

C:\a 디렉터리의 모든 파일 및 디렉터리를 C:\c 디렉터리로 복사합니다. 복사할 디렉터리가 대상 디렉터리에 이미 있는 경우에는 Force 매개 변수를 사용하지 않은 한 명령이 실패합니다.

copy-item -path C:\a\* -destination C:\c -recurse

파일 및 디렉터리 이동

-------------------------- 예제 1 --------------------------

이 명령은 C:\A 디렉터리에서 C:\A\Aa 디렉터리로 C.txt 파일을 이동합니다.

move-item -path C:\a\c.txt -destination C:\a\aa

이 명령은 이름이 같은 기존 파일을 자동으로 덮어쓰지 않습니다. cmdlet이 기존 파일을 덮어쓰도록 강제하려면 Force 매개 변수를 지정합니다.

-------------------------- 예제 2 --------------------------

이 명령은 C:\A 디렉터리와 모든 내용을 C:\B 디렉터리로 이동합니다.

move-item -path C:\a -destination C:\b

이동할 디렉터리가 현재 위치인 경우에는 해당 디렉터리를 이동할 수 없습니다.

파일 내용 관리

-------------------------- 예제 1 --------------------------

이 명령은 Test.txt 파일에 "test content" 문자열을 추가합니다.

add-content -path test.txt -value "test content"

Test.txt 파일의 기존 내용은 삭제되지 않습니다.

-------------------------- 예제 2 --------------------------

이 명령은 Test.txt 파일의 내용을 가져와서 콘솔에 표시합니다.

get-content -path test.txt

파일 내용을 다른 cmdlet으로 파이프할 수 있습니다. 예를 들어 다음 명령은 Test.txt 파일의 내용을 읽은 다음 ConvertTo-HTML cmdlet에 대한 입력으로 제공합니다. get-content -path test.txt | convertto-html

-------------------------- 예제 3 --------------------------

이 명령은 Test.txt 파일의 내용을 "test content" 문자열로 바꿉니다.

set-content -path test.txt -value "test content"

또한 Test.txt의 내용을 덮어씁니다. New-Item cmdlet의 Value 매개 변수를 사용하여 파일을 만들 때 내용을 추가할 수 있습니다.

보안 설명자 관리

-------------------------- 예제 1 --------------------------

이 명령은 System.Security.AccessControl.FileSecurity 개체를 반환합니다.

get-acl -path test.txt | format-list -property *

이 개체에 대한 자세한 내용을 보려면 명령을 Get-Member cmdlet으로 파이프하십시오. 또는 MSDN(Microsoft Developer Network) 라이브러리의 "FileSecurity Class(FileSecurity 클래스)"(https://go.microsoft.com/fwlink/?LinkId=145718)를 참조하십시오.

-------------------------- 예제 2 --------------------------

이 명령은 System.Security.AccessControl.DirectorySecurity 개체를 반환합니다.

get-acl -path test_directory | format-list -property *

이 개체에 대한 자세한 내용을 보려면 명령을 Get-Member cmdlet으로 파이프하십시오. 또는 MSDN 라이브러리의 "DirectorySecurity Class(DirectorySecurity 클래스)"(https://go.microsoft.com/fwlink/?LinkId=145736)를 참조하십시오.

파일 및 디렉터리 만들기

-------------------------- 예제 1 --------------------------

이 명령은 C: 드라이브에 Logfiles 디렉터리를 만듭니다.

new-item -path c:\ -name logfiles -type directory

-------------------------- 예제 2 --------------------------

이 명령은 C:\Logfiles 디렉터리에 Log2.txt 파일을 만들고 이 파일에 "test log" 문자열을 추가합니다.

new-item -path c:\logfiles -name log.txt -type file

-------------------------- 예제 3 --------------------------

C:\logfiles 디렉터리에 Log2.txt라는 파일을 만들고 이 파일에 "test log" 문자열을 추가합니다.

new-item -path c:\logfiles -name log2.txt -type file -value "test log"

파일 및 디렉터리 이름 바꾸기

-------------------------- 예제 1 --------------------------

이 명령은 C:\A 디렉터리에 있는 A.txt 파일의 이름을 B.txt로 바꿉니다.

rename-item -path c:\a\a.txt -newname b.txt

-------------------------- 예제 2 --------------------------

이 명령은 C:\A\Cc 디렉터리의 이름을 C:\A\Dd로 바꿉니다.

rename-item -path c:\a\cc -newname dd

파일 및 디렉터리 삭제

-------------------------- 예제 1 --------------------------

이 명령은 현재 디렉터리에서 Test.txt 파일을 삭제합니다.

remove-item -path test.txt

-------------------------- 예제 2 --------------------------

이 명령은 현재 디렉터리에서 파일 이름 확장명이 .xml인 모든 파일을 삭제합니다.

remove-item -path *.xml

연결된 파일을 호출하여 프로그램 시작

-------------------------- 예제 1 --------------------------

첫 번째 명령은 Get-Service cmdlet을 사용하여 로컬 서비스에 대한 정보를 가져옵니다.

이 명령은 정보를 Export-Csv cmdlet으로 파이프하고 해당 정보를 Services.csv 파일에 저장합니다.

두 번째 명령은 Invoke-Item을 사용하여 .csv 확장명과 연결된 프로그램에서 Services.csv 파일을 엽니다.

get-service | export-csv -path services.csv

invoke-item -path services.csv

동적 매개 변수

동적 매개 변수는 Windows PowerShell 공급자가 추가하고 이 공급자가 사용할 수 있는 드라이브에서 cmdlet을 사용하는 경우에만 사용할 수 있는 cmdlet 매개 변수입니다.

Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Value Description

Unknown

인코딩 유형을 알 수 없거나 잘못되었습니다. 데이터가 Binary로 처리될 수 있습니다.

String

문자열에 대한 인코딩 유형을 사용합니다.

Unicode

Little-Endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.

Byte

문자 집합을 일련의 바이트로 인코딩합니다.

BigEndianUnicode

Big-Endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.

UTF8

UTF-8 형식으로 인코딩합니다.

UTF7

UTF-7 형식으로 인코딩합니다.

ASCII

ASCII(7비트) 문자 집합에 대한 인코딩을 사용합니다.

지원되는 cmdlet

Delimiter <System.String>

파일을 읽을 때 사용할 구분 기호를 지정합니다. 기본값은 "\n"(줄의 끝)입니다.

지원되는 cmdlet

Wait <System.Management.Automation.SwitchParameter>

내용이 파일에 추가되기를 기다립니다. 내용이 추가되면 추가된 내용을 반환합니다. 내용이 변경된 경우에는 전체 파일을 반환합니다.

기다리는 동안 Get-Content는 Ctrl+C를 눌러 사용자가 중단할 때까지 1초에 한 번씩 파일을 검사합니다.

지원되는 cmdlet

참고 항목




목차