NSTask

2012-12-08 6 views
1

내가 NSTask를 통해 해결하려면 다음 find 명령을 얻으려고에 cmd를 찾아 실행하는 방법 :NSTask

find /Users/user/projects ! -path '*.git*' -ctime -1 

내가 무시 경로 부분이 작동하도록하는 데 문제가 있어요 그러나. 터미널에서 잘 작동합니다. .git 디렉토리를 제외하고 지난 24 시간 동안 수정 된 파일을 받았습니다. NSTask를 사용하여 .git 디렉토리가 나는 다음과 같은 인수를 사용하고 ...... 방법으로 너무 많은 긍정적 인 결과 무시되지 않습니다

NSArray *args = @[@"/Users/user/projects", @"!", @"-path", @"'*.git*'", @"-ctime", @"-1"]; 

아무도 내가 뭘 잘못 알고 있나요?

+0

왜 같은 이유로 AppleScript를 사용하지 않으시겠습니까? –

답변

1

는 당신이 그렇지 않으면 '*.git*' (그대로)을 명명 된 파일 만 무시 찾을

@"*.git*" 

에 의해 인수

@"'*.git*'" 

을 교체해야 생각합니다. 터미널에서 명령을 실행할 때 셸은 작은 따옴표를 제거합니다.

2

더 쉽게 찾을 수 있습니다.

NSString *argString = @"/Users/user/projects ! -path '*.git*' -ctime -1"; 
[nsTaskName setArguments: [argString componentsSeparatedByString: @" "]]; 

터미널에서 인수를 디버깅 할 때 복사 및 과거를 수행하고 앞에 '찾기'를 추가하면됩니다.

+0

그게 전부지만 '* .git *'vs * .git * 문제를 해결하지는 못 하겠지만 무슨 뜻인지 알 겠어. – P5ycH0

+1

맞아, 나도 그걸 말 했어야했다. 앞으로도 당신을 도우려는 것뿐입니다. –