안녕하세요 저는 PowerShell을 처음 사용하고 있으며 영화 전송 스크립트를 만들려고합니다. 내 영화 폴더의 하위 항목을 나열하고 .csv로 덤프 할 스크립트를 만들었습니다. 최종 사용자는 .csv 파일을 선택하고 다른 열에 'y'를 입력 할 수 있습니다. 그런 다음 Powershell 스크립트를 실행하여 'y'열을 사용하여 선택 항목을 필터링하고 항목을 비교하여 별도의 폴더/드라이브에 복사합니다.Powershell은 csv 목록을 사용하여 디렉토리를 복사합니다.
.csv를 영화가 보관 된 원래 폴더와 비교하여 다른 폴더로 복사하는 데 문제가 있습니다. 내 스크립트는 [0] 등을 사용하여 한 번에 하나의 배열 항목 만 찾아서 복사합니다.
다음은 내 export-csv 스크립트 (문제없이 작동 함) 및 내 사본 항목 스크립트)
수출 CSV.ps1
$Movies = "D:\Media\Movies"
Get-ChildItem $Movies | select name,y | Export-Csv D:\Media\Media_Scripts\Movies.csv -NoTypeInformation
그리고 출력의 이미지 .csv 파일
,COPY-ITEM.ps1 $ csv_name 뒤에 []에 단일 배열 번호를 추가 할 때만 작동합니다. 내가 재귀을 좋아하고 새 위치
$Csv_loc = "D:\Media\Media_Scripts\"
$Movies_loc = "D:\Media\Movies\"
$Test = "D:\Media\Media_Scripts\Test\"
$csv = Import-Csv "$csv_loc\Movies.csv" | Where-Object{$_.y -eq "y"} | select name
$csv_name | foreach($_)
{
Get-ChildItem $movies_loc | Where-Object {$_.Name -contains $csv_name[0]} | copy-item -Destination $Test -Recurse -Verbose
}
'$ csv_name'이 비어 있습니다. 당신은 아무 것도 지정하지 않습니다. 또한 이중 백 슬래시가있는 경로를 만듭니다. 'Join-Path'를 사용하면 실수를 피할 수 있습니다. 그리고 foreach를 잘못 사용합니다. – Swonkie
고마워요. 미안 해요. 내 변수를 잘못 썼습니다. (단지 $ csv 일 예정이었습니다) –
Swonkie가 지적한 정정 사항을 반영하여 질문을 편집해야합니다. 또한 foreach ($ _)는 나에게 매우 불분명하다. 당신은 종종 백분율 기호로 작성된 구성을 시도하고 있습니까? –