我需要在SSIS(2015)中使用C#在带有日期参数的Windows服务器上运行命令行
命令行示例:
D:\ TEST> dotnet TEST.dll --fromDateTime“ 2018-11-21” --toDateTime“ 2018-11-22”
您能协助我编写剧本吗?
谢谢
答案 0 :(得分:0)
谢谢大家的帮助。
我找到了解决问题的答案:
因为它适用于EXE或BAT,所以不能使用SSIS执行过程任务
不想/不能将我的DotNet DLL更改为EXE,因为它的限制非常严格,并且该项目还包含许多其他因素,这些因素不在此问题范围内(并且开发工作由其他团队完成)< / p>
这是带有答案的C#-它有效! :)
public void Main() { 字符串FromDate = Dts.Variables [“ User :: FromDate”]。Value.ToString(); 字符串ToDate = Dts.Variables [“ User :: ToDate”]。Value.ToString(); 字符串TEST_Path = Dts.Variables [“ $ Package :: TEST_Path”]。Value.ToString(); 字符串TEST_ExePath = Dts.Variables [“ $ Package :: TEST_ExePath”]。Value.ToString();
var strCmdText = @"c:\program files\dotnet\dotnet.exe";
var parameters = TEST_ExePath.ToString() + " --fromDateTime " + FromDate.ToString() + " --toDateTime " + ToDate.ToString();
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = new System.Diagnostics.ProcessStartInfo(strCmdText, parameters);
p.StartInfo.WorkingDirectory = TEST_Path;
p.StartInfo.UseShellExecute = false;
bool fireAgain = false;
try
{
p.Start();
}
catch(Exception e)
{
Dts.Events.FireError(0, "Script Task Example", "Exception encountered: " + e.ToString(), String.Empty, 0);
}
p.WaitForExit();
Dts.Events.FireInformation(0, "Script Task Example", "Exit code = " + p.ExitCode.ToString(), String.Empty, 0, ref fireAgain);
Dts.TaskResult = (int)ScriptResults.Success;
}