static void Main(string[] args) { Assembly a = Assembly.GetExecutingAssembly(); if (args.Length == 0) { About frmAbout = new About(a); frmAbout.ShowDialog(); } else { ProcessCommandLine(args, a); } }
/// <summary> /// Processes the command line arguments. /// </summary> /// <param name="args">The command line arguments.</param> /// <param name="a">Assembly.</param> private static void ProcessCommandLine(string [] args, Assembly a) { string vLogFileName = null; string vserver = null; string vSaveFileName = null; string vLoadFileName = null; string vPackageGUID = null; string vVersionGUID = null; string vEncryptPassword = null; bool PkgFlag = false; bool Sqlflag = false; bool removeflag = false; bool saveflag = false; bool loadflag = false; bool DTSflag1 = false; bool DTSflag2 = false; bool TestFlag = false; bool verflag = false; string vpkgname = "Replace This Name"; for (int ii = 0; ii < args.Length; ii++) { switch (args[ii].ToLower()) { case "help": case "/help": case "/?": { About frmAbout = new About(a); frmAbout.ShowDialog(); return; } case "/h": { ErrorFlag = true; break; } case "/d": { debugflag = true; break; } case "/r": { removeflag = true; break; } case "/f": { if (ii + 1 < args.Length) { vLogFileName = args[ii + 1]; if (!vLogFileName.ToLower().EndsWith("\\")) { vLogFileName = vLogFileName + "DTSPackage.log"; } ii ++; } break; } case "/x": { saveflag = true; removeflag = false; if (ii + 1 < args.Length) { vSaveFileName = args[ii + 1]; if (!vSaveFileName.ToLower().EndsWith(".xml")) { if (!vSaveFileName.ToLower().EndsWith(".dts")) { vSaveFileName += ".xml"; } else { DTSflag2 = true; } } ii ++; } break; } case "/l": { loadflag = true; removeflag = false; if (ii + 1 < args.Length) { vLoadFileName = args[ii + 1]; if (!vLoadFileName.ToLower().EndsWith(".xml")) { if (!vLoadFileName.ToLower().EndsWith(".dts")) { vLoadFileName += ".xml"; } else { DTSflag1 = true; } } ii ++; } break; } case "/i": //package ID guid { if (ii + 1 < args.Length) { vPackageGUID = args[ii + 1]; if (!vPackageGUID.EndsWith("}")) { vPackageGUID = vPackageGUID + "}"; } if (!vPackageGUID.StartsWith("{")) { vPackageGUID = "{" + vPackageGUID; } ii ++; } break; } case "/v": //package version guid { if (ii + 1 < args.Length) { vVersionGUID = args[ii + 1]; if (!vVersionGUID.EndsWith("}")) { vVersionGUID = vVersionGUID + "}"; } if (!vVersionGUID.StartsWith("{")) { vVersionGUID = "{" + vVersionGUID; } ii ++; } break; } case "/w": { AuthType = DTSPackage2.authTypeFlags.Trusted; break; } case "/t": { TestFlag = true; break; } case "/u": { if (ii + 1 < args.Length) { vuser = args[ii + 1]; ii ++; } break; } case "/p": { if (ii + 1 < args.Length) { vpass = args[ii + 1]; ii ++; } break; } case "/s": { Sqlflag = true; if (ii + 1 < args.Length) { vserver = args[ii + 1]; ii ++; } break; } case "/n": { PkgFlag = true; if (ii + 1 < args.Length) { vpkgname = args[ii + 1]; ii ++; } break; } case "/e": { if (ii + 1 < args.Length) { vEncryptPassword = args[ii + 1]; ii ++; } break; } case "/pi": { verflag = true; break; } } } // end of for loop that parses the passed in args array if (TestFlag) { ErrorFlag = false; debugflag = true; } if (vuser == null) { vuser = "******"; //set default user } if (Sqlflag && vserver != null) { if (!ErrorFlag && vserver.IndexOf("/") >= 0 ) { logger.Error("SQL Server Name [" + vserver + "] contains a forward slash!\n\nThe DTS installation program can not connect.\n\nTo connect to a SQL instance, the SQL Server Instance string\nmust have a back slash."); return; //MessageBox.Show("SQL Server Name [" + vserver + "] contains a forward slash!\n\nThe DTS installation program can not connect.\n\nTo connect to a SQL instance, the SQL Server Instance string\nmust have a back slash.", "SQL CONNECTION ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { gsComputername = vserver; if (!ErrorFlag && debugflag) { string msgStr = null; if (AuthType == DTSPackage2.authTypeFlags.Default) { msgStr = "SQL Server Name: " + gsComputername + "\nUser ID: " + vuser + "\nPassword: not shown"; } else { msgStr = "SQL Server Name: " + gsComputername + "\nSQL Login is using Windows Authentication."; } logger.Debug(msgStr); //MessageBox.Show(msgStr, "DEBUG HELP", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else { gsComputername = GetLocalMachineName(); if (!ErrorFlag && debugflag) { string msgStr = null; if (AuthType == DTSPackage2.authTypeFlags.Default) { msgStr = "SQL Server Name: " + gsComputername + "\nUser ID: " + vuser + "\nPassword: not shown"; } else { msgStr = "SQL Server Name: " + gsComputername + "\nSQL Login is using Windows Authentication."; } logger.Debug(msgStr); //MessageBox.Show(msgStr, "DEBUG HELP", MessageBoxButtons.OK, MessageBoxIcon.Information); } } if (PkgFlag && vpkgname != null) { if (!ErrorFlag && debugflag) { logger.Debug("CommandLine DTS Package Name: " + vpkgname); //MessageBox.Show("CommandLine DTS Package Name: " + vpkgname, "DEBUG HELP", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { if (!ErrorFlag) { logger.Info("CommandLine DTS Package Name: " + vpkgname); //MessageBox.Show("CommandLine DTS Package Name: " + vpkgname, "DEBUG HELP", MessageBoxButtons.OK, MessageBoxIcon.Information); } return; } if (TestFlag) { string testresult = null; if (TestConnection(gsComputername, vuser, vpass)) { testresult = "Successful"; } else { testresult = "Failed"; } if (!ErrorFlag) { logger.Info(testresult + " Connection Test."); //MessageBox.Show(testresult + " Connection Test.", "DEBUG HELP", MessageBoxButtons.OK, MessageBoxIcon.Information); } return; } DTSPackage2 oPackage = InitializeDTSPackage( vpkgname, (vLogFileName != null ? vLogFileName : a.Location + vpkgname + ".log"), System.Diagnostics.FileVersionInfo.GetVersionInfo(a.Location).FileDescription); oPackage.Authentication = AuthType; if (!removeflag && !saveflag && !loadflag && !DTSflag1 && !DTSflag2 && !verflag) { if (!ErrorFlag) { logger.Info("No valid command line options were entered for loading or saving the package."); //MessageBox.Show("No valid command line options were entered for loading or saving the package.", "PACKAGE OPTIONS ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); } return; } if (!removeflag && !saveflag && verflag && !DTSflag1) { string packageInfo = oPackage.GetPackageVersionInfo(gsComputername, vpkgname, vuser, vpass, AuthType, false); if (!ErrorFlag) { About frmAbout = new About(); frmAbout.ShowText(packageInfo); frmAbout.Dispose(); } return; } if (!removeflag && !saveflag && verflag && DTSflag1) { string packageInfo = oPackage.GetPackageVersionInfo(vLoadFileName); if (!ErrorFlag) { About frmAbout = new About(); frmAbout.ShowText(packageInfo); frmAbout.Dispose(); } return; } if (!removeflag && !saveflag && loadflag && !DTSflag1) { // call Create DTS on SQL Server from XML file LoadPackageFromXMLDoc(oPackage, vLoadFileName, vEncryptPassword); return; } if (!removeflag && !saveflag && loadflag && DTSflag1) { // call Create DTS on SQL Server from DTS file LoadPackageFromDTSFile(oPackage, vLoadFileName, vEncryptPassword, vPackageGUID, vVersionGUID); return; } if (!removeflag && saveflag && loadflag && !DTSflag1 && DTSflag2) { // call convert XML file to DTS File LoadPackageFromXMLDoc(oPackage, vSaveFileName, vEncryptPassword); return; } if (!removeflag && saveflag && loadflag && DTSflag1 && !DTSflag2) { // call convert DTS file to XML file LoadPackageFromDTSFile(oPackage, vLoadFileName, vSaveFileName, vEncryptPassword, vPackageGUID, vVersionGUID); return; } if (!removeflag && saveflag && !loadflag) { // call load Package from SQL Server LoadPackageFromSQLServer(oPackage, vEncryptPassword ,vPackageGUID, vVersionGUID); // call Serialize as XML file SerializePackageAsXMLFile(oPackage, vSaveFileName); return; } if(removeflag) { // call Remove DTS RemovePackageFromSQLServer(oPackage, vPackageGUID, vVersionGUID); return; } }