변수의 문자열에 대한 소스 코드


1

AppleScript 편집기에서 나는 source_code에 스크립트 내용이 있지만 행 2가 어떤 이유로 실패 함을 알 수 있습니다.

set source_code to load script (POSIX file "/path/to/script.scpt")
word 2 of source_code

이것은 작동하지 않습니다. 나는 변수에 AppleScript 파일을 읽으려고합니다.

이로드 된 코드를 실행하려고하지는 않지만 문자열로 가져와야합니다.


그것은 source_code가«script»문자열이 아니기 때문에 실패한 것 같습니다. 이 문제를 어떻게 해결할 수 있습니까? 감사

set source_code to load script (POSIX file "/path/to/script.scpt")
word 2 of (source_code as string) -->error "Can’t make «script» into type string." number -1700 from «script» to string
word 2 of source_code -->error "Can’t get word 2." number -1728 from word 2

그래서 첫 번째 라인은 작동합니다 ( set source_code ... )하지만 두 번째는 그렇지 않습니까? 두 번째 줄이 정확히 무엇을 기대합니까?
nohillside

소스 코드에서 두 번째 단어를 볼 것으로 예상됩니다. 감사
ps22

답변:


2

그만큼 load script 명령은 읽거나 조작 할 텍스트가 아닌 스크립트를 실행할 개체로로드합니다.

스크립트의 실제 텍스트에 액세스하려면 osadecompile을 사용할 수 있습니다.

do shell script "osadecompile ~/Library/Scripts/test.scpt"
word 2 of result

AppleScript 편집기로 저장된 컴파일 된 스크립트는 일반적으로 문자열에 LF 줄 끝이 있지만 다른 위치에는 CR 줄 끝이 있습니다. osadecompile은 모든 행의 끝을 LF로 변환합니다. do shell script 추가하지 않으면 라인 끝을 CR로 변환합니다. without altering line endings 지정자.


멋지다,이 작품! Lauri Ranta에게 감사드립니다. AppleScript 편집기 창 하단의 설명에있는 텍스트를 가져 오는 방법이 있습니까?

1
당신은 그것에 대해 다른 질문을 할 수 있습니다. 설명은 리소스 포크에 저장됩니다 ( cat Untitled.scpt/..namedfork/rsrc / xattr -p com.apple.ResourceFork Untitled.scpt | xxd -r -p ) 실제로는 서식있는 텍스트이지만 rtf 또는 일반 텍스트로 변환하는 방법을 모르겠습니다.
Lri
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.