批处理 调用 C#写的程序 需求是:我用C#创建一个文本文件,写入一些字符串,其中有几个字符串是变化的, 需要外部输入。这个文本文件创建,写入都很简单,代码好实现,.但用动态库,还是控制台写,怎么调用..但是,如何让批处理程序可以调用?先谢谢大家了.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没看懂意思,C#设计winform程序,开个窗口,创建文件、写入固定字符+用户输入字符,保存,ok了。可是这和批处理有什么关系呢。 这个帖子,解决你的问题: http://topic.csdn.net/u/20100224/11/52970c74-6760-4176-bd83-62ad86efb688.html winform,console的都能做出来,简单的文本文件操作。但是现在要用批处理进行操作,我对批处理不了解,就想问下:用批处理如何调用C#程序,如何调用的....? 批处理调用使用写成控制台或winform都可以的。卸载批处理中:start test.exe,就可以调用你的程序了 刚才看了下批处理命令,我这个应该是属于调用start命令吧?那我C#程序需要怎么处理呢?因为我这个创建文件的程序需要传入4个参数,举个例子,这里需要传入4个int值,如何做呢? 谢谢你,那个帖子和我的需要不太一样我看了下批处理命令,可能我把我知道的描述错了。我用批处理的start命令调用我自己的exe,或者动态库什么的?因为我这里需要传入参数,例如4个int参数,我在用批处理调用C#程序时,如何还传递这4个参数呢? 或者具体点说,咱们在cmd下可以调用dir /p/w用C#写的程序,可以在控制台下用自定义命令 -参数1 -参数2 -参数3 -参数4这种形式调用C#写的程序吗? 你再仔细看看: 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"); } } 十分感谢你~不过C#里面的代码我这里一共就几行而已,我现在遇到的问题是,如何用cmd控制台调用这个程序?而且需要外部传入参数,4个参数。在cmd执行的方式例如:命令 -参数1 -参数2 -参数3 -参数4这种形式如何写?我现在可以用批处理的start命令调用exe文件,但需要传入的4个参数无法传入。或许不需要EXE,但如何做到上面那个在cmd中的执行方式,不知道.. 修改main方法,如下: static void Main(string[] args) { Console.Write(args[0]); Console.Write(args[1]); Console.Write(args[2]); Console.Write(args[3]);} 你调用时,传入的参数就在args这个数组里存放,你只要遍历这个数组,就能得到你要多参数了。就是按照你传入的参数顺序的。 谢谢 mjp1234airen4385我现在也是在args中提取参数,我开的控制台找到exe所在的目录下,我exe叫test.ext我在控制台中输入test 1,2,3,41234为我要输入的参数如果是string,是不是就是test “123” “456” “789” “012”但现在在控制台这样输入执行了,但不对....我还在找,这个不知道进程往哪里附加,打不上断点...... 哦了,很简单的问题让我弄复杂了咳~自己真笨,谢谢 LS几位,谢谢 mjp1234airen4385 如何实现这个算法 新手问新手! 100分线程问题 使用 DevExpress 控件?? 關于PANEL 的坐標設定? DataGridView问题 关于textbox的刷新 文本文件导入数据库出错,请教大家,谢谢... 怎么进行面向对象的分析和设计啊 SQL语句的简单问题,参数设置 代码实现Office文件数据签名问题 Oracle数据库连接,桌面程序正常,但在WCF中就出错
但是现在要用批处理进行操作,
我对批处理不了解,
就想问下:用批处理如何调用C#程序,如何调用的....?
卸载批处理中:start test.exe,就可以调用你的程序了
我这个应该是属于调用start命令吧?那我C#程序需要怎么处理呢?
因为我这个创建文件的程序需要传入4个参数,
举个例子,这里需要传入4个int值,
如何做呢?
我看了下批处理命令,
可能我把我知道的描述错了。我用批处理的start命令调用我自己的exe,或者动态库什么的?
因为我这里需要传入参数,例如4个int参数,
我在用批处理调用C#程序时,如何还传递这4个参数呢?
咱们在cmd下可以调用
dir /p/w用C#写的程序,可以在控制台下用
自定义命令 -参数1 -参数2 -参数3 -参数4
这种形式调用C#写的程序吗?
{
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");
} }
十分感谢你~
不过C#里面的代码我这里一共就几行而已,
我现在遇到的问题是,如何用cmd控制台调用这个程序?
而且需要外部传入参数,4个参数。
在cmd执行的方式例如:命令 -参数1 -参数2 -参数3 -参数4
这种形式如何写?
我现在可以用批处理的start命令调用exe文件,
但需要传入的4个参数无法传入。
或许不需要EXE,但如何做到上面那个在cmd中的执行方式,不知道..
static void Main(string[] args)
{
Console.Write(args[0]);
Console.Write(args[1]);
Console.Write(args[2]);
Console.Write(args[3]);
}
你只要遍历这个数组,就能得到你要多参数了。
就是按照你传入的参数顺序的。
我开的控制台找到exe所在的目录下,
我exe叫test.ext
我在控制台中输入
test 1,2,3,4
1234为我要输入的参数
如果是string,是不是就是
test “123” “456” “789” “012”
但现在在控制台这样输入执行了,但不对....
我还在找,这个不知道进程往哪里附加,打不上断点......
咳~
自己真笨,
谢谢 LS几位,
谢谢 mjp1234airen4385