$ 난 할 노력하고있어입니다 : 내가 필요한 파일의 목록이 포함 된 .csv 스프레드 시트에서 정보를 당겨있어어떻게 파워 쉘
. 문제는 디렉토리에있는 디렉토리에 16,000 개 이상의 파일이 있다는 것입니다. 필자는 약 4600 개 정도만 필요합니다 (스프레드 시트 열에는 그 중 많은 수가 포함되어 있습니다). 실제로 코드의 일부분을 알아 냈습니다 ...하지만 문제가 발생하는 곳은 코드의 "Copy-Item"부분에 도달 할 때입니다. 그것은 파일 이름의 일부로 대괄호가있는 파일에 도달 할 때까지 잘 실행되므로 물론 오류를 발생시키고 필요한 정보를 제공하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 주의해야 할 점은 복사가 필요하거나 복사중인 파일의 이름을 변경할 수 없다는 것입니다. 그게 해결책이라면, "-LiteralPath"를 어떻게 사용할 지 모르겠습니다. :(여기 아래에있는 내 코드는 다음과 같습니다. 당신이 파일을 다시 시도 할 수있는 능력과 대량 복사를 수행 할 경우, 당신은 여전히 복사 품목은 자사 -LiteralPath
매개 변수를 사용하여 사용하려는 경우
$Directory = gci D:\Documents\15075_32\
$Destination = "D:\CleanReview"
$ReviewSheet = import-csv 'C:\Users\7cm\Desktop\Internal Review - Emails Removed per Attorney Request.csv'
$BaseItem = foreach($li in $ReviewSheet){$li.Base}
foreach($File in $Directory){
$File.BaseName
foreach($Item in $BaseItem){
if($Item -like $File.BaseName){
$Item
Copy-Item $File.FullName $Destination -Force
}
}
}
무엇을 의미합니까? 예 : $ Directory = gci -LiteralPath D : \ Documents \ 15075_32 \ –
디렉토리의 경로에 -LiteralPath를 두었습니다.하지만 그 파일을 선언 할 때 차이가 어떻게 생기는지는 알 수 없습니다. 디렉토리를 나중에 별도로 작성하십시오. 또한 와일드 카드를 지원하는 곳은 어디 까지나 보았습니다. 글자 그대로 말하면 와일드 카드 오류가 발생합니다. 그래서 교환 원을 -eq로 바꿨지 만 이제 경로가 없기 때문에 .MSG 파일을 찾을 수 없다는 말을 듣고 있습니다. 그래서 $ Directory ($ Directory + $ File)에 $ Directory를 복사 - 항목 행에 추가했습니다. 그러나 파일 이름이 같더라도 지금은 복사하지 않습니다! : –
이 문제를 해결하고 내가 원하는 결과를 얻을 수있었습니다. 아래에 설명 된 설명이 있습니다. –