2011-02-16 5 views
0

백업 위치로 이동해야하는 파일 배열이 있습니다. get-childitem 명령을 사용하여 원하는 항목의 배열을 수집 중입니다. 수집 된 항목 목록이 준비되면 robocopy를 사용하여 물건을 이동하려고합니다.get-childitem에서 robocopy로 파이핑 출력

[email protected]() 

$srcitems = get-childitem $paths 

robocopy $srcitems $dest /move 

이 방법이 유용합니까?
robocopy로 개별 항목을 파이프하는 가장 좋은 방법은 무엇입니까?

감사
Steeluser있는 Robocopy는 소스 디렉토리, 대상 디렉토리 및 인수로 파일 스펙을 기대하고있다

답변

2
  Usage :: ROBOCOPY source destination [file [file]...] [options] 

     source :: Source Directory (drive:\path or \\server\share\path). 
    destination :: Destination Dir (drive:\path or \\server\share\path). 
      file :: File(s) to copy (names/wildcards: default is "*.*"). 

. "수집 된 항목 목록"이 어떤 모양인지 모른 채 명확한 답을내는 것은 어렵습니다. 소스 디렉토리라면, robocopy의 ivocation을 통해 그리스트를 foreach 할 수 있으며, 파일 이름에 와일드 카드 스펙을 하드 코드 할 수 있습니다. 파일 목록이 있다면 그 파일을 디렉토리/파일 (split-path를 사용합니다)에 분할하고 각 소스 디렉토리에 대해 robocopy를 호출하여 파일 목록을 지정해야합니다 예배 규칙서.

+0

덕분에 많이 mjolinor을합니다 (ROBOCOPY 문서에 따라 분명하다)

$srcPath = "C:\somefolder" $dstPath = "C:\someOtherFolder" $srcitems = get-childitem $srcPath #whatever condition $srcitems | Select Name | ForEach-Object {robocopy $srcPath $dstPath $_.name} 

, 당신의 제안은 내 작품에 대한 좋은 작업 스크립트를 만들 수있었습니다. – Animesh

2

비슷한 시나리오는 경우 게시가 도움이 :

나는 일부 폴더는 모든 소스로부터 목적지로 내 "금요일"로 시작 및 항목 (이동)을 복사하는 데 필요한, 그리고에 보인다이 함께했다 작동 :

Get-ChildItem T:\ParentFolder -Filter "Friday*" -Name | ForEach-Object { robocopy "T:\ParentFolder\$_" "E:\$_" /z /s /MOVE } 
  • 은 "은 Get-ChildItem을을"부분이 "금요일"(-Filter "금요일 *")와 시작하는 폴더 이름 (-Name)를 보여줍니다.
  • ForEach-Object에 파이프가 연결되어 발견 된 모든 인스턴스에 대해 robocopy가 실행됩니다.
  • robocopy/MOVE 인수는 분명히 폴더/파일을 이동시킵니다.

저는 Powershell에 상당히 익숙합니다. 더 좋은 방법이 있는지 확실하지 않습니다. 스크립트는 아직 실행 중이지만 지금까지는 훌륭합니다.

@ walid2mi는 작동하는 Move-Item을 사용합니다. 나는 robocopy b/c와 같이 재시작 가능 모드 (/ Z)를 가지고있다. 나를 위해 일한

관련 문제