2013-07-10 3 views
0

요약하면 내 기본 SSD와 함께 두 개의 외장 하드 드라이브 (T : 및 V :)로 표시됩니다. T : 미디어 저장소에만 사용하고 V : 단순히 미러 된 백업이어야합니다. 한가지 비꼬는 점은 T에서 특정 파일 이름을 약간 수정한다는 것입니다. 비디오가 앞에있는 해시를 통해 시청 된 후 (목록에있는 비디오를 나타 내기 위해)입니다. 예 : 1. 파일럿, # 2. 보기, 3. 게임 ... ep 2를 보자. 1. 파일럿, 2. 쇼, # 3. 경기.두 개의 디렉토리를 비교하고 특정 파일을 제외하기위한 Powershell 스크립트

나는 이제 약해서 쓸모없는 코드를 가지고있다. 나는 Powershell에 상당히 새롭기 때문에 누구나 여름날 낭비하지 않고 모든 일을 처리하기를 바라지 만, 나를 보내주기위한 제안은 없습니까? 정말로, 나는 어떤 종류의 제외/99 % 비교할 수있는 파일에 대한 조항을 무시합니다. 즉 # 2이다. Show vs 2. Show (왼쪽/오른쪽 함수의 수를 알고 있지만 원하는대로 작동하지는 않습니다.)

혼란스러운 질문에 감사드립니다.

코드 기압 : 당신은 단순히 둘 사이의 차이점이 무엇인지 알고 싶다면 gci -recurse -path C:\V\TV, C:\T | Where-Object {$_.name -like "*.txt*"} | Group -noelement | where {$_.count -eq 1} | Sort-Object -Property Name

`이름


1 #Goodbye - Copy (20).txt 
1 #Goodbye - Copy (6).txt 
1 #Hello - Copy (21).txt 
1 #Hello - Copy (7).txt  
1 Goodbye - Copy (20).txt 
1 Goodbye - Copy (6).txt 
1 Hello - Copy (21).txt  
1 Hello - Copy (7).txt` 
+0

의 TrimStart 방법을 사용하여, 문자 #를 시작 파일 이름을 제거에만 고유 한 값을 나열합니다 스크립트입니다 예상대로 작동하지 않습니까? – Artemix

+0

bah, 내 게시물의 서식을 잘못 지정했습니다 ... hold on – user2567649

답변

1

카운트, 다음 스크립트는 할 수 있습니다 것입니다 :

$T = Get-ChildItem T: -Recurse 
$V = Get-ChildItem V: -Recurse 
Compare-Object $T $V 

또는 컴팩트 한 형태로 :

compare (ls T: -Recurse) (ls V: -Recurse) 

T : 및 V 아래에있는 모든 파일을 간단히 비교한다는 점에 유의하십시오. Get-ChildItem cmdlet의 필터링을 통해 비교 범위를 좁힐 수 있습니다. 코멘트에서

편집

업데이트는, 다음은 코드의 어느 부분 [String]

Get-ChildItem -Recurse -Path T:,V: | %{ $_.Name.TrimStart('#') } | Sort-Object -Unique 
+0

오른쪽 필터를 찾을 수 없으므로별로 손상되지 않습니다. 나는 더미 T와 V 파일을 여러 txt 파일과 함께 설치했다. 여기에 내 코드와 출력이있다. 그리고 내가 원하는 것은 그 파일들이 모두 '같은'파일이기 때문에 제외시키려는 것이다. 해시 인치 'gci -recurse -path C : \ V \ TV, C : \ T | Where-Object {$ _. 이름 - 유사 "* .txt *"} | 그룹 - 구성원 | 여기서 {$ _. count -eq 1} | 정렬 개체 -Property Name'가 '1 #Goodbye - 복사 (21)를 .txt #Hello 1 - - 복사 (6) 1 #Hello이 .txt로 - 복사 (20)가 1 #Goodbye .txt로 복사 (7) .txt 안녕하세요 - 복사 (6) .txt 1 안녕하세요 - 복사 (21) .txt 1 안녕하세요 - 복사 (7) .txt' – user2567649

+0

@ user2567649 질문에 넣어. 거기에서 코드를 포맷 할 수 있습니다. – Artemix

+0

죄송합니다.이 포럼에서 frickin '형식을 사용하지 않으셔도됩니다. 코드를 완성하고 "-PropertyName"을 끝내면 출력물이 형식화 된 목록이됩니다.이 목록에서 거의 중복 된 것을 볼 수 있습니다. – user2567649

관련 문제