需求是:我用C#创建一个文本文件,写入一些字符串,其中有几个字符串是变化的,
 
        需要外部输入。这个文本文件创建,写入都很简单,代码好实现,.但用动态库,还是控制台写,怎么调用..但是,如何让批处理程序可以调用?先谢谢大家了....

解决方案 »

  1.   

    没看懂意思,C#设计winform程序,开个窗口,创建文件、写入固定字符+用户输入字符,保存,ok了。可是这和批处理有什么关系呢。
      

  2.   

    这个帖子,解决你的问题:  http://topic.csdn.net/u/20100224/11/52970c74-6760-4176-bd83-62ad86efb688.html
      

  3.   

    winform,console的都能做出来,简单的文本文件操作。
    但是现在要用批处理进行操作,
    我对批处理不了解,
    就想问下:用批处理如何调用C#程序,如何调用的....?
      

  4.   

    批处理调用使用写成控制台或winform都可以的。
    卸载批处理中:start test.exe,就可以调用你的程序了
      

  5.   

    刚才看了下批处理命令,
    我这个应该是属于调用start命令吧?那我C#程序需要怎么处理呢?
    因为我这个创建文件的程序需要传入4个参数,
    举个例子,这里需要传入4个int值,
    如何做呢?
      

  6.   

    谢谢你,那个帖子和我的需要不太一样
    我看了下批处理命令,
    可能我把我知道的描述错了。我用批处理的start命令调用我自己的exe,或者动态库什么的?
    因为我这里需要传入参数,例如4个int参数,
    我在用批处理调用C#程序时,如何还传递这4个参数呢?
      

  7.   

    或者具体点说,
    咱们在cmd下可以调用
    dir /p/w用C#写的程序,可以在控制台下用
    自定义命令 -参数1 -参数2 -参数3 -参数4
    这种形式调用C#写的程序吗?
      

  8.   

    你再仔细看看:        private void Form1_Load(object sender, EventArgs e)
            {
                Process p = new Process();
                p.StartInfo.FileName = "format.com";
                p.StartInfo.Arguments = " G: /FS:FAT /Q";   //这里就是命令行参数,用空格分隔
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.CreateNoWindow = true;//true表示不显示黑框,false表示显示dos界面 
                p.StartInfo.UseShellExecute = false;
                p.EnableRaisingEvents = true;            p.Exited += new EventHandler(p_Exited);
                p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
                p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);            p.Start();
                p.StandardInput.WriteLine("");
                p.StandardInput.WriteLine("");            //开始异步读取输出
                p.BeginOutputReadLine();
                p.BeginErrorReadLine();            //调用WaitForExit会等待Exited事件完成后再继续往下执行。
                p.WaitForExit();
                p.Close();
                
                Console.WriteLine("exit");        }        void p_OutputDataReceived(Object sender, DataReceivedEventArgs e)
            {
                //这里是正常的输出
                Console.WriteLine(e.Data);        }        void p_ErrorDataReceived(Object sender, DataReceivedEventArgs e)
            {
                //这里得到的是错误信息
                Console.WriteLine(e.Data);        }        void p_Exited(Object sender, EventArgs e)
            {
                Console.WriteLine("finish");
            }    }
      

  9.   


    十分感谢你~
    不过C#里面的代码我这里一共就几行而已,
    我现在遇到的问题是,如何用cmd控制台调用这个程序?
    而且需要外部传入参数,4个参数。
    在cmd执行的方式例如:命令 -参数1 -参数2 -参数3 -参数4
    这种形式如何写?
    我现在可以用批处理的start命令调用exe文件,
    但需要传入的4个参数无法传入。
    或许不需要EXE,但如何做到上面那个在cmd中的执行方式,不知道..
      

  10.   

    修改main方法,如下:
     static void Main(string[] args)
            {
                Console.Write(args[0]);
                Console.Write(args[1]);
                Console.Write(args[2]);
                Console.Write(args[3]);
    }
      

  11.   

    你调用时,传入的参数就在args这个数组里存放,
    你只要遍历这个数组,就能得到你要多参数了。
    就是按照你传入的参数顺序的。
      

  12.   

    谢谢 mjp1234airen4385我现在也是在args中提取参数,
    我开的控制台找到exe所在的目录下,
    我exe叫test.ext
    我在控制台中输入
    test 1,2,3,4
    1234为我要输入的参数
    如果是string,是不是就是
    test “123” “456” “789” “012”
    但现在在控制台这样输入执行了,但不对....
    我还在找,这个不知道进程往哪里附加,打不上断点......
      

  13.   

    哦了,很简单的问题让我弄复杂了
    咳~
    自己真笨,
    谢谢 LS几位,
    谢谢 mjp1234airen4385