需要外部输入。
这个文本文件创建,写入都很简单,代码好实现,.
但用动态库,还是控制台写,怎么调用..
但是,如何让批处理程序可以调用?
先谢谢大家了....
16 个解决方案
#1
没看懂意思,
C#设计winform程序,开个窗口,创建文件、写入固定字符+用户输入字符,保存,ok了。
可是这和批处理有什么关系呢。
C#设计winform程序,开个窗口,创建文件、写入固定字符+用户输入字符,保存,ok了。
可是这和批处理有什么关系呢。
#3
winform,console的都能做出来,简单的文本文件操作。
但是现在要用批处理进行操作,
我对批处理不了解,
就想问下:用批处理如何调用C#程序,如何调用的....?
但是现在要用批处理进行操作,
我对批处理不了解,
就想问下:用批处理如何调用C#程序,如何调用的....?
#4
批处理调用使用写成控制台或winform都可以的。
卸载批处理中:start test.exe,就可以调用你的程序了
卸载批处理中:start test.exe,就可以调用你的程序了
#5
你批处理啥意思?一次调用多次
#6
不是是调用多次才用批处理,
是因为还有其他的操作,
这里创建的文件只是批处理中的一步而已...
我还是没怎么理解...
谁能给我个小例子啊?
#7
刚才看了下批处理命令,
我这个应该是属于调用start命令吧?
那我C#程序需要怎么处理呢?
因为我这个创建文件的程序需要传入4个参数,
举个例子,这里需要传入4个int值,
如何做呢?
我这个应该是属于调用start命令吧?
那我C#程序需要怎么处理呢?
因为我这个创建文件的程序需要传入4个参数,
举个例子,这里需要传入4个int值,
如何做呢?
#8
看看我给你的帖子,里面有你要的东西!
#9
谢谢你,那个帖子和我的需要不太一样。。。
我看了下批处理命令,
可能我把我知道的描述错了。
我用批处理的start命令调用我自己的exe,或者动态库什么的?
因为我这里需要传入参数,例如4个int参数,
我在用批处理调用C#程序时,如何还传递这4个参数呢?
我看了下批处理命令,
可能我把我知道的描述错了。
我用批处理的start命令调用我自己的exe,或者动态库什么的?
因为我这里需要传入参数,例如4个int参数,
我在用批处理调用C#程序时,如何还传递这4个参数呢?
#10
或者具体点说,
咱们在cmd下可以调用
dir /p/w
用C#写的程序,可以在控制台下用
自定义命令 -参数1 -参数2 -参数3 -参数4
这种形式调用C#写的程序吗?
咱们在cmd下可以调用
dir /p/w
用C#写的程序,可以在控制台下用
自定义命令 -参数1 -参数2 -参数3 -参数4
这种形式调用C#写的程序吗?
#11
你再仔细看看:
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");
}
}
#12
十分感谢你~
不过C#里面的代码我这里一共就几行而已,
我现在遇到的问题是,如何用cmd控制台调用这个程序?
而且需要外部传入参数,4个参数。
在cmd执行的方式例如:命令 -参数1 -参数2 -参数3 -参数4
这种形式如何写?
我现在可以用批处理的start命令调用exe文件,
但需要传入的4个参数无法传入。
或许不需要EXE,但如何做到上面那个在cmd中的执行方式,不知道..
#13
修改main方法,如下:
static void Main(string[] args)
{
Console.Write(args[0]);
Console.Write(args[1]);
Console.Write(args[2]);
Console.Write(args[3]);
}
static void Main(string[] args)
{
Console.Write(args[0]);
Console.Write(args[1]);
Console.Write(args[2]);
Console.Write(args[3]);
}
#14
你调用时,传入的参数就在args这个数组里存放,
你只要遍历这个数组,就能得到你要多参数了。
就是按照你传入的参数顺序的。
你只要遍历这个数组,就能得到你要多参数了。
就是按照你传入的参数顺序的。
#15
谢谢 mjp1234airen4385
我现在也是在args中提取参数,
我开的控制台找到exe所在的目录下,
我exe叫test.ext
我在控制台中输入
test 1,2,3,4
1234为我要输入的参数
如果是string,是不是就是
test “123” “456” “789” “012”
但现在在控制台这样输入执行了,但不对....
我还在找,这个不知道进程往哪里附加,打不上断点......
我现在也是在args中提取参数,
我开的控制台找到exe所在的目录下,
我exe叫test.ext
我在控制台中输入
test 1,2,3,4
1234为我要输入的参数
如果是string,是不是就是
test “123” “456” “789” “012”
但现在在控制台这样输入执行了,但不对....
我还在找,这个不知道进程往哪里附加,打不上断点......
#16
哦了,很简单的问题让我弄复杂了。。。
咳~
自己真笨,
谢谢 LS几位,
谢谢 mjp1234airen4385
咳~
自己真笨,
谢谢 LS几位,
谢谢 mjp1234airen4385
#1
没看懂意思,
C#设计winform程序,开个窗口,创建文件、写入固定字符+用户输入字符,保存,ok了。
可是这和批处理有什么关系呢。
C#设计winform程序,开个窗口,创建文件、写入固定字符+用户输入字符,保存,ok了。
可是这和批处理有什么关系呢。
#2
#3
winform,console的都能做出来,简单的文本文件操作。
但是现在要用批处理进行操作,
我对批处理不了解,
就想问下:用批处理如何调用C#程序,如何调用的....?
但是现在要用批处理进行操作,
我对批处理不了解,
就想问下:用批处理如何调用C#程序,如何调用的....?
#4
批处理调用使用写成控制台或winform都可以的。
卸载批处理中:start test.exe,就可以调用你的程序了
卸载批处理中:start test.exe,就可以调用你的程序了
#5
你批处理啥意思?一次调用多次
#6
不是是调用多次才用批处理,
是因为还有其他的操作,
这里创建的文件只是批处理中的一步而已...
我还是没怎么理解...
谁能给我个小例子啊?
#7
刚才看了下批处理命令,
我这个应该是属于调用start命令吧?
那我C#程序需要怎么处理呢?
因为我这个创建文件的程序需要传入4个参数,
举个例子,这里需要传入4个int值,
如何做呢?
我这个应该是属于调用start命令吧?
那我C#程序需要怎么处理呢?
因为我这个创建文件的程序需要传入4个参数,
举个例子,这里需要传入4个int值,
如何做呢?
#8
看看我给你的帖子,里面有你要的东西!
#9
谢谢你,那个帖子和我的需要不太一样。。。
我看了下批处理命令,
可能我把我知道的描述错了。
我用批处理的start命令调用我自己的exe,或者动态库什么的?
因为我这里需要传入参数,例如4个int参数,
我在用批处理调用C#程序时,如何还传递这4个参数呢?
我看了下批处理命令,
可能我把我知道的描述错了。
我用批处理的start命令调用我自己的exe,或者动态库什么的?
因为我这里需要传入参数,例如4个int参数,
我在用批处理调用C#程序时,如何还传递这4个参数呢?
#10
或者具体点说,
咱们在cmd下可以调用
dir /p/w
用C#写的程序,可以在控制台下用
自定义命令 -参数1 -参数2 -参数3 -参数4
这种形式调用C#写的程序吗?
咱们在cmd下可以调用
dir /p/w
用C#写的程序,可以在控制台下用
自定义命令 -参数1 -参数2 -参数3 -参数4
这种形式调用C#写的程序吗?
#11
你再仔细看看:
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");
}
}
#12
十分感谢你~
不过C#里面的代码我这里一共就几行而已,
我现在遇到的问题是,如何用cmd控制台调用这个程序?
而且需要外部传入参数,4个参数。
在cmd执行的方式例如:命令 -参数1 -参数2 -参数3 -参数4
这种形式如何写?
我现在可以用批处理的start命令调用exe文件,
但需要传入的4个参数无法传入。
或许不需要EXE,但如何做到上面那个在cmd中的执行方式,不知道..
#13
修改main方法,如下:
static void Main(string[] args)
{
Console.Write(args[0]);
Console.Write(args[1]);
Console.Write(args[2]);
Console.Write(args[3]);
}
static void Main(string[] args)
{
Console.Write(args[0]);
Console.Write(args[1]);
Console.Write(args[2]);
Console.Write(args[3]);
}
#14
你调用时,传入的参数就在args这个数组里存放,
你只要遍历这个数组,就能得到你要多参数了。
就是按照你传入的参数顺序的。
你只要遍历这个数组,就能得到你要多参数了。
就是按照你传入的参数顺序的。
#15
谢谢 mjp1234airen4385
我现在也是在args中提取参数,
我开的控制台找到exe所在的目录下,
我exe叫test.ext
我在控制台中输入
test 1,2,3,4
1234为我要输入的参数
如果是string,是不是就是
test “123” “456” “789” “012”
但现在在控制台这样输入执行了,但不对....
我还在找,这个不知道进程往哪里附加,打不上断点......
我现在也是在args中提取参数,
我开的控制台找到exe所在的目录下,
我exe叫test.ext
我在控制台中输入
test 1,2,3,4
1234为我要输入的参数
如果是string,是不是就是
test “123” “456” “789” “012”
但现在在控制台这样输入执行了,但不对....
我还在找,这个不知道进程往哪里附加,打不上断点......
#16
哦了,很简单的问题让我弄复杂了。。。
咳~
自己真笨,
谢谢 LS几位,
谢谢 mjp1234airen4385
咳~
自己真笨,
谢谢 LS几位,
谢谢 mjp1234airen4385