在Objective-C中启动dscutil

在Objective-C中启动dscutil,objective-c,command-line,terminal,arguments,dscl,Objective C,Command Line,Terminal,Arguments,Dscl,如何在Objective-C中使用dscl,并获得其输出?我要传递的命令(就好像它在终端中一样)是: dscl . -readall /Users UniqueID | awk '/^RecordName:/ {name=$2}; /^UniqueID: / {if ($2 > 500) print name}' 我知道如何使用-xml等参数启动system_profiler,但我不知道如何在实际工作的地方传递这么长的字符串 我知道system_profiler是/usr/sbin/sy

如何在Objective-C中使用
dscl
,并获得其输出?我要传递的命令(就好像它在终端中一样)是:

dscl . -readall /Users UniqueID | awk '/^RecordName:/ {name=$2}; /^UniqueID: / {if ($2 > 500) print name}'
我知道如何使用-xml等参数启动system_profiler,但我不知道如何在实际工作的地方传递这么长的字符串


我知道system_profiler是/usr/sbin/system_profiler,但是dscl呢?

您最好的选择是将其作为shell脚本启动。将它作为shell脚本粘贴到项目中的文件中,或者使用
NSTask
组成一个调用/bin/sh的命令行,将命令作为字符串传递,以允许
sh
解析它


例如,
/bin/sh-c“…您的命令字符串…”

您最好的选择是将其作为shell脚本启动。将它作为shell脚本粘贴到项目中的文件中,或者使用
NSTask
组成一个调用/bin/sh的命令行,将命令作为字符串传递,以允许
sh
解析它


例如,
/bin/sh-c“…您的命令字符串…”

尝试:outFileData=[taskLauncher launchTask:@“usr/sh”,带参数:[NSArray arrayWithObjects:@“-c”,@“dscl.-readall/Users UniqueID | awk'/^RecordName:/{name=$2};/^UniqueID:/{if($2>500)print name}',nil];未工作尝试:outFileData=[taskLauncher launchTask:@“bin/sh”,带参数:[NSArray arrayWithObjects:@“-c”,“dscl.-readall/Users UniqueID | awk'/^RecordName:/{name=$2};/^UniqueID:/{if($2>500)print name}',nil];但它不起作用。还尝试了/user/bin/sh您是否真的转到终端窗口并在那里尝试该命令?显然不是。这样做;当你让它在终端中工作时,然后将它复制/粘贴到你的代码中。(顺便说一句:答案是
/bin/sh
)尝试:OutfielData=[taskLauncher launchTask:@“usr/sh”带参数:[NSArray arrayWithObjects:@“-c”,“dscl.-readall/Users UniqueID | awk'/^RecordName:/{name=$2};/^UniqueID:/{if($2>500)print name}',nil];未工作尝试:outFileData=[taskLauncher launchTask:@“bin/sh”,带参数:[NSArray arrayWithObjects:@“-c”,“dscl.-readall/Users UniqueID | awk'/^RecordName:/{name=$2};/^UniqueID:/{if($2>500)print name}',nil];但它不起作用。还尝试了/user/bin/sh您是否真的转到终端窗口并在那里尝试该命令?显然不是。这样做;当你让它在终端中工作时,然后将它复制/粘贴到你的代码中。(顺便说一句:答案是
/bin/sh