PowerShell의 카피 항목의 컨테이너 주장의 의미는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/129088

  •  02-07-2019
  •  | 
  •  

문제

PowerShell의 대본을 쓰고 있습니다. 이 스크립트를 사용합니다 Copy-Item 명령. 이 명령에 대한 선택적인 주장 중 하나는 "-container". 인수에 대한 문서는이 인수를 지정하는 것을 명시하고있다.

나는 복사 작업 중에 보존되지 않은 컨테이너 객체를 원하는 마지막 사람이 될 것이기 때문에 이것은 모두 훌륭합니다. 그러나 모든 진지함 에서이 주장은 무엇을합니까? 특히 디스크 디렉토리 트리를 한 곳에서 다른 곳으로 복사하는 경우, 이것이의 동작에 어떤 차이가 있습니까? Copy-Item 명령?

도움이 되었습니까?

해결책

문서가 말하는 컨테이너는 폴더 구조입니다. 재귀 사본을 수행하고 폴더 구조를 보존하려면 -Container 스위치를 사용합니다. (참고 : 기본적으로 -Container 스위치가 True로 설정되어 있으므로 실제로 지정할 필요가 없습니다. 끄기를 원한다면 사용할 수 있습니다. -container: $false.)

이에 대한 캐치가 있습니다 ... 디렉토리 목록을 작성하고 복사 항목으로 파이프하면 폴더 구조가 보존되지 않습니다. 폴더 구조를 보존하려면 -path 속성과 -recurse 스위치를 지정해야합니다.

다른 팁

나도 문서가 도움이되지 않는 것을 발견했습니다. 나는 어떻게 테스트를했는지 확인했다 -Container 매개 변수는 함께 작동합니다 -Recurse 파일과 폴더를 복사 할 때.

주목하십시오 -Container 수단 -Container: $true.

이것은 내가 예제에 사용한 파일 구조입니다.

#    X:.
#    ├───destination
#    └───source
#        │   source.1.txt
#        │   source.2.txt
#        │
#        └───source.1
#                source.1.1.txt
  • 모든 예를 들어 현재 위치 (PWD)는 다음과 같습니다. X:\.
  • PowerShell 4.0을 사용했습니다.

1) 소스 폴더 만 복사하려면 (빈 폴더) :

Copy-Item -Path source -Destination .\destination
Copy-Item -Path source -Destination .\destination -Container
#    X:.
#    ├───destination
#    │   └───source
#    └───source (...)

다음은 오류가 발생합니다.

Copy-Item -Path source -Destination .\destination -Container: $false
# Exception: Container cannot be copied to another container. 
#            The -Recurse or -Container parameter is not specified.     

2) 전체 폴더 구조를 파일로 복사하려면 :

Copy-Item -Path source -Destination .\destination -Recurse
Copy-Item -Path source -Destination .\destination -Recurse -Container
#    X:.
#    ├───destination
#    │   └───source
#    │       │   source.1.txt
#    │       │   source.2.txt
#    │       │
#    │       └───source.1
#    │               source.1.1.txt
#    └───source (...)    

3) 모든 자손 (파일 및 폴더)을 단일 폴더로 복사하려면 :

Copy-Item -Path source -Destination .\destination -Recurse -Container: $false
#    X:.
#    ├───destination
#    │   │   source.1.1.txt
#    │   │   source.1.txt
#    │   │   source.2.txt
#    │   │
#    │   └───source.1
#    └───source (...)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top