c# - 进程类 db2cmd c#

标签 c# batch-file db2 processstartinfo

我的程序需要在 IBM DB2 (db2cmd.exe) 中运行“.BAT”文件。并将该控制台的内容记录到一个字符串中,我应该能够对其进行格式化。

现状是: bat 文件包含数据库的用户名和密码,导出到 csv 查询。手动执行 bat 文件绝对没问题。

问题是我无法将控制台的详细信息捕获到字符串中。

代码片段如下:

proc.StartInfo.FileName = "db2cmd.exe";
proc.StartInfo.Arguments = @"C:\test.bat";
proc.StartInfo.WorkingDirectory = @"C:\Program Files\IBM\SQLLIB\BIN\";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;

proc.OutputDataReceived += (o, e) => s.AppendLine(e.Data);
proc.ErrorDataReceived += (o, e) => s.AppendLine(e.Data);

proc.Start();

proc.BeginOutputReadLine();
proc.BeginErrorReadLine();
proc.WaitForExit();

code = proc.ExitCode;

最佳答案

db2cmd.exe 默认打开一个新的命令 shell。尝试使用命令开关 /i/c 在同一个 shell 中运行您的脚本。

关于c# - 进程类 db2cmd c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443061/

相关文章:

c# - 首先在 EF4.1 代码中,使用注释、配置文件或在 OnModelCreating 中配置实体有什么区别?

c# - 在 Windows 8 应用程序中使用 HttpClient 的并行 HTTPRequest

c# - 如何将多个 ViewModel 添加到主窗口中的用户控件

sql - SSIS 包中的季度数据加载

c# - 在锁定文件中找不到所需的信息。确保你的目标中提到了 .NETCore,Version=v5.0/win10-anycpu

batch-file - 批量 Roguelike 游戏

windows - for 循环的批处理脚本不起作用,仅循环一次

Java 在代码块之间跳转

java - 在 jdbc url 中设置当前路径

sql - 游标 SQL_CURLH200C1 未处于准备状态