thank you , allen 2. and sorry for I still have another question.. a simple code in C /* pow.c , generate pow.exe */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char **argv) { if(argv!=3) return 1; else printf("%lf", pow( atof(argv[1]), atof(argv[2])) ); return 0; } :: demo.bat pow.exe 1.23 4.56 it will show 2.570202 in console window. but I can't get it in batch-variable. I handle it by redirection to a file, then read the file again :: demo.bat SET c=0 pow.exe 1.23 4.56 > _rst.txt FOR /F %%I IN ( _rst.txt) DO ( SET c=%%I ) del _rst.txt I know, the method is slow and stupid. I just want to know , in batch file, is the method good ? or is any method better than this ? ------ As you said, I want to save the value into a variable,but in C language, it's a big problem, just like this /* filename: pow2.c generate: pow2.exe */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char **argv) { if(argv!=4) return 1; else sprintf(argv[3], "%lf", pow( atof(argv[1]), atof(argv[2])) ); return 0; } I can't do that!! the behavior is very dangerous in C. in batch file @echo off SET rst call pow2.exe 1.23 4.56 rst echo %rst% those codes can't work , because pow2.exe receive argv by argv[0]=pow2.exe argv[1]=1.23 argv[2]=4.56 argv[3]=rst const string, not variable, I can't change its value!! ---- maybe, I should ask another question : 「how to pass the envionment variable to batch file in C ? 」 ---- I know it's a big and studip problem, but I just want to know , how can I write some application in C, and batch file can using it. Thanks for your replies.