다음을 통해 공유


Copy-Item

한 위치에서 다른 위치로 항목을 복사합니다.

구문

Path (기본값)

Copy-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

LiteralPath

Copy-Item
    [[-Destination] <String>]
    -LiteralPath <String[]>
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

Description

Copy-Item cmdlet은 한 위치에서 동일한 네임스페이스의 다른 위치로 항목을 복사합니다. 예를 들어 파일을 폴더에 복사할 수 있지만 인증서 드라이브에 파일을 복사할 수는 없습니다.

이 cmdlet은 복사되는 항목을 잘라내거나 삭제하지 않습니다. cmdlet에서 복사할 수 있는 특정 항목은 항목을 노출하는 PowerShell 공급자에 따라 달라집니다. 예를 들어 파일 시스템 드라이브의 파일 및 디렉터리와 레지스트리 드라이브의 레지스트리 키 및 항목을 복사할 수 있습니다.

이 cmdlet은 동일한 명령에서 항목을 복사하고 이름을 바꿀 수 있습니다. 항목의 이름을 바꾸려면 Destination 매개 변수 값에 새 이름을 입력합니다. 항목의 이름을 바꾸고 복사하지 않려면 Rename-Item cmdlet을 사용합니다.

예제

예제 1: 지정된 디렉터리에 파일 복사

다음은 mar1604.log.txt 파일을 C:\Presentation 디렉터리에 복사하는 예제입니다. 원본 파일은 삭제되지 않습니다.

Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"

예제 2: 디렉터리 내용을 기존 디렉터리에 복사

다음은 C:\Logfiles 디렉터리의 내용을 기존 C:\Drawings 디렉터리에 복사하는 예제입니다. Logfiles 디렉터리가 복사되지 않습니다.

Logfiles 디렉터리에 하위 디렉터리에 파일이 포함된 경우 해당 하위 디렉터리가 파일 트리를 그대로 사용하여 복사됩니다. 기본적으로 Container 매개 변수는 디렉터리 구조를 유지하는 true설정됩니다.

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse

비고

복사본에 Logfiles 디렉터리를 포함해야 하는 경우 \* 제거합니다. 다음은 그 예입니다.

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse

예제 3: 디렉터리 내용을 새 디렉터리에 복사

다음은 C:\Logfiles 원본 디렉터리의 내용을 복사하고 새 대상 디렉터리를 만드는 예제입니다. 새 대상 디렉터리 \LogsC:\Drawings만들어집니다.

원본 디렉터리의 이름을 포함하려면 예제 2표시된 대로 기존 대상 디렉터리에 복사합니다. 또는 새 대상 디렉터리의 이름을 원본 디렉터리와 동일하게 지정합니다.

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse

비고

경로\*포함하면 하위 디렉터리 트리가 없는 모든 디렉터리의 파일 내용이 새 대상 디렉터리에 복사됩니다. 다음은 그 예입니다.

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse

예제 4: 지정된 디렉터리에 파일 복사 및 파일 이름 바꾸기

이 예제에서는 Copy-Item cmdlet을 사용하여 Get-Widget.ps1 디렉터리에서 \\Server01\Share 디렉터리로 \\Server12\ScriptArchive 스크립트를 복사합니다. 복사 작업의 일부로 명령은 항목 이름을 Get-Widget.ps1Get-Widget.ps1.txt변경하여 전자 메일 메시지에 첨부할 수 있습니다.

Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"

예제 5: 원격 컴퓨터에 파일 복사

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 test.log 변수에 저장된 세션 정보를 사용하여 D:\Folder001 폴더에서 원격 컴퓨터의 C:\Folder001_Copy 폴더로 $Session 복사합니다. 원본 파일은 삭제되지 않습니다.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session

예제 6: 폴더의 전체 내용을 원격 컴퓨터에 복사

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 D:\Folder002 변수에 저장된 세션 정보를 사용하여 C:\Folder002_Copy 폴더의 전체 콘텐츠를 원격 컴퓨터의 $Session 디렉터리로 복사합니다. 하위 폴더는 파일 트리를 그대로 사용하여 복사됩니다.

$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session

예제 7: 폴더의 전체 내용을 원격 컴퓨터에 재귀적으로 복사

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 D:\Folder003 변수에 저장된 세션 정보를 사용하여 C:\Folder003_Copy 폴더의 전체 콘텐츠를 원격 컴퓨터의 $Session 디렉터리로 복사합니다. 하위 폴더는 파일 트리를 그대로 사용하여 복사됩니다. Recurse 매개 변수가 사용되므로 작업이 아직 없는 경우 Folder003_Copy 폴더를 만듭니다.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse

예제 8: 원격 컴퓨터에 파일을 복사한 다음 파일 이름을 바꿉니다.

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 scriptingexample.ps1 변수에 저장된 세션 정보를 사용하여 D:\Folder004 폴더에서 원격 컴퓨터의 C:\Folder004_Copy 폴더로 $Session 복사합니다. 복사 작업의 일부로 명령은 항목 이름을 scriptingexample.ps1scriptingexample_copy.ps1변경하여 전자 메일 메시지에 첨부할 수 있습니다. 원본 파일은 삭제되지 않습니다.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session

예제 9: 로컬 컴퓨터에 원격 파일 복사

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 test.log 변수에 저장된 세션 정보를 사용하여 원격 C:\MyRemoteData\ 로컬 D:\MyLocalData 폴더로 $Session 복사합니다. 원본 파일은 삭제되지 않습니다.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session

예제 10: 원격 폴더의 전체 내용을 로컬 컴퓨터에 복사

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 C:\MyRemoteData\scripts 변수에 저장된 세션 정보를 사용하여 원격 D:\MyLocalData 폴더의 전체 콘텐츠를 로컬 $Session 폴더로 복사합니다. 스크립트 폴더에 하위 폴더에 파일이 포함된 경우 해당 하위 폴더는 파일 트리를 그대로 사용하여 복사됩니다.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session

예제 11: 원격 폴더의 전체 내용을 로컬 컴퓨터에 재귀적으로 복사

세션은 자격 증명을 사용하여 Contoso\User01 원격 컴퓨터에 만들어지고 결과를 $Session변수에 저장합니다.

Copy-Item cmdlet은 C:\MyRemoteData\scripts 변수에 저장된 세션 정보를 사용하여 원격 D:\MyLocalData\scripts 폴더의 전체 콘텐츠를 로컬 $Session 폴더로 복사합니다. Recurse 매개 변수가 사용되므로 스크립트 폴더가 아직 없는 경우 작업이 만듭니다. 스크립트 폴더에 하위 폴더에 파일이 포함된 경우 해당 하위 폴더는 파일 트리를 그대로 사용하여 복사됩니다.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:cf(cf)

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Container

이 cmdlet은 복사 작업 중에 컨테이너 개체를 유지한다는 것을 나타냅니다. 기본적으로 Container 매개 변수는 true설정됩니다.

매개 변수 속성

형식:SwitchParameter
Default value:True
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Credential

비고

이 매개 변수는 PowerShell과 함께 설치된 공급자에서 지원되지 않습니다. 다른 사용자를 가장하거나 이 cmdlet을 실행할 때 자격 증명을 높이려면 Invoke-Command사용합니다.

매개 변수 속성

형식:PSCredential
Default value:Current user
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Destination

새 위치의 경로를 지정합니다. 기본값은 현재 디렉터리입니다.

복사되는 항목의 이름을 바꾸려면 Destination 매개 변수 값에 새 이름을 지정합니다.

매개 변수 속성

형식:String
Default value:Current directory
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:1
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Exclude

문자열 배열로 이 cmdlet이 작업에서 제외하는 항목 또는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: *.txt)을 입력합니다. 와일드카드 문자가 허용됩니다. Exclude 매개 변수는 와일드카드 문자가 C:\Windows\* 디렉터리의 내용을 지정하는 C:\Windows같은 항목의 내용을 명령에 포함하는 경우에만 유효합니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Filter

Path 매개 변수를 한정할 필터를 지정합니다. FileSystem 공급자는 필터 사용을 지원하는 유일한 설치된 PowerShell 공급자입니다. FileSystem 필터 언어의 구문은 about_Wildcards에서 찾을 수 있습니다. 필터는 cmdlet이 개체를 가져올 때 제공자가 이를 적용하기 때문에, 개체가 검색된 후 PowerShell이 필터링을 하는 것보다 더 효율적입니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Force

이 cmdlet은 읽기 전용 파일 또는 별칭을 복사하는 등 변경할 수 없는 항목을 복사합니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-FromSession

원격 파일이 복사되는 PSSession 개체를 지정합니다. 이 매개 변수를 사용하는 경우 PathLiteralPath 매개 변수는 원격 컴퓨터의 로컬 경로를 참조합니다.

매개 변수 속성

형식:PSSession
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Include

문자열 배열로 이 cmdlet이 작업에 포함하는 항목 또는 항목을 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드 문자가 허용됩니다. Include 매개 변수는 커맨드가 와일드카드 문자를 사용하여 C:\Windows\* 디렉터리의 내용을 지정하는 C:\Windows와 같은 항목의 내용을 포함할 때에만 유효합니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-LiteralPath

하나 이상의 위치에 대한 경로를 지정합니다. LiteralPath 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

자세한 내용은 about_Quoting_Rules참조하세요.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:False
DontShow:False
별칭:PSPath

매개 변수 집합

LiteralPath
Position:Named
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-PassThru

작업 중인 항목을 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Path

문자열 배열로 복사할 항목의 경로를 지정합니다. 와일드카드 문자가 허용됩니다.

매개 변수 속성

형식:

String[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

Path
Position:0
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-Recurse

이 cmdlet이 재귀 복사본을 수행한다는 것을 나타냅니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-ToSession

원격 파일이 복사되는 PSSession 개체를 지정합니다. 이 매개 변수를 사용하는 경우 Destination 매개 변수는 원격 컴퓨터의 로컬 경로를 참조합니다.

매개 변수 속성

형식:PSSession
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-UseTransaction

활성 트랜잭션에 명령을 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions참조하세요.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:usetx

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:위스콘신

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

String

경로가 포함된 문자열을 이 cmdlet에 파이프할 수 있습니다.

출력

None or an object representing the copied item

PassThru 매개 변수를 사용하는 경우 이 cmdlet은 복사된 항목을 나타내는 개체를 반환합니다. 그렇지 않으면 이 cmdlet은 출력을 생성하지 않습니다.

참고

이 cmdlet은 모든 공급자가 노출하는 데이터를 사용하도록 설계되었습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 Get-PSProvider입력합니다. 추가 정보는 about_Providers를 참조하십시오.