נשלח בתאריך: 08 April 2005 בשעה 21:33 | | IP רשוּם
|
|
|
|
לא נראה לי שאפשר לעשות קובץ אצווה כדי לעשות את הדברים האלו, ובכלל אני רוצה שתוכנית תנהל לי את הפקודות ואת הפלט שלהם כמו למשל לקבל את התשובה מפקודה DIR ואז להחליט איזה קבצים למחוק (זה דוגמא קלה) העניין מסתבל כשאתה רוצא שהפקודות לא יהיו בהכרח ל-DOS אלה יתנו פקודות ל-CMD לכול דבר, למשל להתחיל לדבר עם ORACLE ב-DOS, זה לא DOS אבל זה קרטריאלי (אין מצב שרשמתי את זה נכון).
הינה קוד שפותח PIPE ובקיצור שולח פקודה ומקבל תשובה(סליחה שזה ממש לא מסודר):
// crt_popen.c /* This program uses _popen and _pclose to receive a * stream of text from a system process. */
#include <stdio.h> #include <stdlib.h>
void do_cut(char *command[] ) {
char psBuffer[48][128]; FILE *pPipe; int linenum,tmp;
/* Run DIR so that it writes its output to a pipe. Open this * pipe with read text attribute so that we can read it * like a text file. */ printf ("Enter the line number you want:\n>"); scanf("%d", &linenum); linenum--; /*if( (pPipe = _popen( "C:\\programmes\\text\\text.exe", "rwt" )) == NULL )*/ if( (pPipe = _popen( "*command", "rwt" )) == NULL )
{ printf (" Can't open pipe.\n "); exit( 1 ); } fprintf(pPipe, "***************************\n"); /* Read pipe until end of file. */ tmp =0; //while( !feof( pPipe ) ) for (tmp=0; !feof( pPipe ); tmp++) { fgets( psBuffer[tmp], 128, pPipe ) ; } if (linenum>tmp) linenum=tmp-2; /* Close pipe and print return value of pPipe. */ /*fprintf(pPipe, "***************************"); printf (psBuffer[5]);*/ printf("\n***************************\n"); printf("\n %s \n", psBuffer[linenum]); printf( "\nProcess returned %d\n", _pclose( pPipe ) ); }
__________________ כן?
לא?
שחור לבן.
|