Comment utiliser NSTask avec pbcopy ?
-
14-11-2019 - |
Question
Je suis débutant et j'ai un problème.Je souhaite utiliser NSTask avec la commande "pbcopy".J'ai essayé ceci mais il semble que cela ne fonctionne pas :
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];
Des idées ?Merci.
Ça fonctionne 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];
La solution
Le tube ("|") est une fonctionnalité du shell, pas un argument de la commande que vous utilisez.Il faut en utiliser deux NSTasks
, un pour echo et un pour pbcopy et configurez un NSPipe
entre eux.
Au fait, je suppose que vous utilisez ceci comme exemple.Sinon, ce serait beaucoup plus simple à utiliser NSPasteboard
pour ça.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow