2012-10-09 4 views
1

Objective-C에서 dscl을 어떻게 사용하고 출력을 얻을 수 있습니까? 내가 터미널에있는 것처럼 전달하려는 명령은 다음과 같습니다Objective-C에서 dscutil 실행

dscl . -readall /Users UniqueID | awk '/^RecordName:/ {name=$2}; /^UniqueID:/{if ($2 > 500) print name}' 

가 나는 등 -xml, 같은 인수 system_profiler를 시작하지만, 나는 그런 긴 문자열을 전달하는 방법을 알아낼 수있는 방법을 알고 실제로 작동하는 곳입니다.

필자는 system_profiler가/usr/sbin/system_profiler라는 것을 알고 있지만 dscl은 무엇입니까?

답변

1

가장 좋은 방법은 마치 쉘 스크립트 인 것처럼 실행하는 것입니다. 프로젝트에 쉘 스크립트로 파일에 넣거나 NSTask을 사용하여/bin/sh을 호출하는 명령 줄을 구성하고이 명령을 문자열로 전달하여 sh이 구문 분석하도록 허용하십시오.

e.e. /bin/sh -c ".... your command string ...."

+0

시도 : outFileData = [taskLauncher launchTask : @ "usr/sh"withArguments : [NSArray arrayWithObjects : @ "-c", @ "dscl.-readall/Users UniqueID | awk '/^RecordName :/{name = $ 2};/^ UniqueID :/{if ($ 2> 500) 인쇄 이름} ' ", nil]]; – John

+0

'usr/sh'을 작동하지 않았습니까? 그건 옳지 않아. – bbum

+0

시도 : outFileData = [taskLauncher launchTask : @ "bin/sh"withArguments : [NSArray arrayWithObjects : @ "- c", @ "dscl. -readall/Users UniqueID | awk '/^RecordName :/{name = $ 2};/^ UniqueID :/{if ($ 2> 500) 인쇄 이름} ' ", nil]]; 그것은 작동하지 않았다. 또한/user/bin/sh를 시도했습니다 – John