2013-05-17 2 views
0

드디어 InDesign CS6 용 스크립트에서 약간의 진전이있었습니다. 이제는 어떤 프린터에 문서를 인쇄해야 하는지를 알기 위해 스크립트가 실행되는 컴퓨터를 쿼리해야합니다. 그, 아마도 현재 로그인 한 사용자의 이름을 제외하면, 그것은 정말로 같은 것입니다. Mac OS X 환경입니다. 누구든지 올바른 방향으로 나를 도울 수 있습니까?Extendscript에서 현재 사용자 이름 또는 컴퓨터 이름 얻기

답변

3

http://jongware.mit.edu/idcs6js/pc_$.html에서 볼 수 있듯이 $.getenv() 메서드는 모든 환경 변수를 가져 오는 데 사용할 수 있습니다. Windows에서는 $.getenv("COMPUTERNAME")을 사용할 수 있으며 Mac의 경우 $.getenv("HOSTNAME")을 사용해야합니다.

이것이 작동하지 않는지 알려주세요. 테스트 할 Mac이 없지만 다른 옵션이있을 수 있습니다.

EDIT 1 : InDesign Server를 사용하고 있습니까? 그렇다면 app.serverHostNameapp.serverSettings.hostName이 작동합니다.

편집 2 :가 여기에 또 다른 가능한 해결책은 :

var outputFile = new File(Folder.desktop.fsName + "/GetHostName.sh"); 
outputFile.open("w"); 
try { 
    outputFile.write("scutil --get HostName > ~/Desktop/HostName.txt"); 
} 
finally { 
    outputFile.close(); 
} 
outputFile.execute(); 

var inputFile = new File(Folder.desktop.fsName + "/HostName.txt"); 
inputFile.open("r"); 
try { 
    var hostName = inputFile.read(); 
} 
finally { 
    inputFile.close(); 
} 

$.writeln("Host Name: " + hostName); 

아이디어는 파일과 다음을 실행하는 쉘 스크립트를 작성하는 것입니다. 쉘 스크립트는 호스트 이름을 가져 와서 파일에 기록합니다. 그런 다음 파일을 열고 호스트 이름을 읽습니다.

+0

@ dln385와 같이 어디서 이걸 보는지 알겠는데'$ .getenv();'와'$ .getenv ("HOSTNAME");'return'null' 두 가지가 있습니다. 온라인 어딘가에 Mac OS X 환경 변수 목록이 있는지 확인할 것입니다. 그리고 우리는 서버의 맛을 사용하지 않고 있으며 단지 InDesign CS6를 사용하고 있습니다. – Sturm

+0

'$ .getenv()'메서드를 사용하여'$ .getenv ("USER")'_does_가 실제로 현재 로그인 한 사용자를 반환했음을 발견했습니다. 이는 내 용도에 충분할 것입니다. 그러나 Mac OS X 10.8에서 컴퓨터 이름으로 사용하는 환경 변수 @ dln385를 발견 한 경우 알려 주시기 바랍니다. 감사! – Sturm

+0

@Sturm 두 번째로 답변을 추가했습니다. – dln385