Applescript : 쉘 명령이 실패했는지 확인하십시오.


1

완성 된 다운로드를위한 폴더를보기 위해 AppleScript를 작성한 다음 처리합니다. 부분 RAR (.r01, .r02, ...)에 걸쳐 파일 분할을 다운로드하는 경우 하느님 나는 그것들을 싫어한다. ) 완료되면 Completed 폴더로 임의로 들어갑니다. 스크립트 중 하나가 완료 될 때마다 스크립트가 실행되지만 모든 스크립트가 완료 될 때까지 스크립트가 자동으로 보관되기 시작하지는 않습니다.

그래서 여기에 내 해결책이있다. 스크립트에서 rar를 발견하면 먼저 완전성을 확인합니다.

do shell script ("unrar v " & theItem)

쉘은 다른 것들 중에서도 다음과 같이 튀어 나옵니다.

... 테스트 아카이브 thefile.r19 96 % ... 테스트 아카이브 thefile.r20 99 % ...   모든 볼륨의 제어 합계 계산.   thefile.file21 파일을 찾을 수 없습니다.   ... thefile.avi - CRC 실패   총 오류 수 : 1

AppleScript를 처음 사용합니다. 무엇을 통해 스캔하여 검증이 실패했는지를 결정하는 가장 효율적인 방법은 무엇입니까?

(또는, unrar v 시간이 많이 걸린다. 이 문제에 접근하는 더 좋은 방법이 있습니까?)

답변:


1

코드를 다음으로 변경하는 경우 :

 set output to do shell script ("unrar v " & theItem)

변수 출력은 쉘 스크립트의 출력을 보유 할 것이며,이를 사용하여 유효한 출력에 대해 기대하는 것과 비교할 수 있습니다.

if output contains "CRC Failed" then
    return
end if

실행을 피하기 위해 unrar v 파일 확장자에 대한 확인을 구현할 수 있습니다 (설정시 theItem AppleScript에서 또는 폴더를 모니터링하는 데 사용하는 방법에 관계없이 - 폴더 작업을 수동으로 실행하고 폴더 작업을 사용하지 않은 경우)

에 대한 자세한 정보 do shell script 애플의 체크 아웃 기술 노트 2065 .


압축 된 파일은 부분 RAR의 수에 제한이 없으므로 파일 확장자를 사용하여 모두 존재하는지 확인할 수는 없습니다. AppleScript 도움말에 감사드립니다. 나는 "contains"에 대해 몰랐다.
Matthew Robertson

@ 매튜 로버트슨 : 그들이 포함되어 있기 때문에 .r[0-9]+ Applescript는 정규 표현식을 지원하기 때문에 가능할 수 있습니다. find 명령이긴하지만 개인적으로 사용한 적은 없으므로 유용한 샘플이 없습니다. (아직?)
Chealion

흠. 파일 이름의 배열을 만들고, 가장 높은 파일 이름 (.r20)을 얻어 순차적으로 r01로 줄이는 지 확인할 수 있습니다. (r01에서 r20까지 다운로드 받았고 r21을 기다리는 시나리오가 있지만) 나는 그 장난감을 가지고 놀 것입니다. 건배.
Matthew Robertson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.