1

私は初心者で、問題があります。コマンド「pbcopy」で NSTask を使用したいと考えています。私はこれを試しましたが、うまくいかないようです:

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/echo"];

NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"my-text-to-copy", @"| pbcopy", nil];
[task setArguments: arguments];

[task launch];

何か案は ?ありがとう。


それは正常に動作します:

NSTask *task = [[NSTask alloc] init];

NSPipe *pipe;
pipe = [NSPipe pipe];

task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/echo"];
[task setStandardOutput:pipe]; // write to pipe
[task setArguments: [NSArray arrayWithObjects: @"tmp", nil]];
[task launch];
[task waitUntilExit];

task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/bin/pbcopy"];
[task setStandardInput:pipe]; // read from pipe
[task launch];
[task waitUntilExit];
4

1 に答える 1

2

パイプ ("|") はシェルの機能であり、使用しているコマンドの引数ではありません。echo 用と pbcopy 用の2 つの を使用し、それらの間にNSTasksを設定する必要がありNSPipeます。

ところで、これを例として使用しているだけだと思います。それ以外の場合は、これを使用する方がはるかに簡単NSPasteboardです。

于 2011-05-16T19:16:46.473 に答える