¿Cómo usar NSTask con pbcopy?

Soy principiante y tengo un problema. Me gustaría usar NSTask con el comando "pbcopy". Intenté esto pero parece que no funciona:

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];

Algunas ideas ? Gracias.


Funciona bien :

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];

preguntado el 16 de mayo de 11 a las 19:05

1 Respuestas

La tubería ("|") es una característica del shell, no un argumento para el comando que está usando. Tienes que usar dos NSTasks, uno para eco y otro para pbcopy y configurar un NSPipe entre ellos.

Por cierto, supongo que solo estás usando esto como ejemplo. De lo contrario, sería mucho más sencillo de usar. NSPasteboard para esto.

contestado el 16 de mayo de 11 a las 23:05

pbcopy se encuentra en / usr / bin, no en / bin. - omz

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.