''' <summary> ''' Extension method to run string as CMD command. ''' </summary> ''' <param name="command">[String] Command to run.</param> ''' <param name="ShowWindow">[Boolean](Default:False) Option to show CMD window.</param> ''' <param name="WaitForProcessComplete">[Boolean](Default:False) Option to wait for CMD process to complete before exiting sub.</param> ''' <param name="permanent">[Boolean](Default:False) Option to keep window visible after command has finished. Ignored if ShowWindow is False.</param> Public Sub RunCMD(command As String, Optional ShowWindow As Boolean = False, Optional WaitForProcessComplete As Boolean = False, Optional permanent As Boolean = False) Dim p As Process = New Process() Dim pi As ProcessStartInfo = New ProcessStartInfo() pi.Arguments = command pi.FileName = "cmd.exe" pi.Verb = "runas" pi.CreateNoWindow = Not ShowWindow If ShowWindow Then pi.WindowStyle = ProcessWindowStyle.Normal Else pi.WindowStyle = ProcessWindowStyle.Hidden End If pi.UseShellExecute = False p.StartInfo = pi p.Start() If WaitForProcessComplete Then Do Until p.HasExited : Loop End Sub
'Lecture Fichier Origine sr = New StreamReader("D:\DEVELOPPEMENT\BL\cmd.txt", System.Text.Encoding.UTF8) 'met le contenu dans une variable texte m_ContenuFichier = sr.ReadToEnd R = Split(m_ContenuFichier, vbLf) 'Ferme le fichier sr.Close() m_ContenueCommande = R(0) m_AncienFichier = "CR_PRE20200611145811122.CSVEBP.csv" m_NouveauFichier = Strings.Replace(strFichier, "D:\CLIENT\DOSSIER\FTP\EXPEDITION\", "") m_NouveauFichier = Strings.Left(m_NouveauFichier, Strings.Len(m_NouveauFichier) - 4) m_NouveauFichier = m_NouveauFichier + "EBP.csv" m_ContenueCommande = Strings.Replace(m_ContenueCommande, m_AncienFichier, m_NouveauFichier) m_ContenueCommande = Strings.Replace(m_ContenueCommande, Chr(34) + Chr(34), Chr(34)) 'RunCMD(m_ContenueCommande)
Public Sub RunCMD(command As String, Optional ShowWindow As Boolean = False, Optional WaitForProcessComplete As Boolean = False, Optional permanent As Boolean = False) Dim p As Process = New Process() Dim pi As ProcessStartInfo = New ProcessStartInfo With { .Arguments = command, .FileName = "cmd.exe", .Verb = "runas", .CreateNoWindow = Not ShowWindow, .UseShellExecute = False, .WindowStyle = If(ShowWindow = True, ProcessWindowStyle.Normal, ProcessWindowStyle.Hidden) } p.StartInfo = pi p.Start() If WaitForProcessComplete = True Then Do Until p.HasExited = True Loop End If End Sub
Environment.Newlinepour le Split à la place de
vbLf
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question'Lecture Fichier Origine sr = New StreamReader("D:\DEVELOPPEMENT\BL\cmd.txt", System.Text.Encoding.UTF8) 'met le contenu dans une variable texte m_ContenuFichier = sr.ReadToEnd R = Split(m_ContenuFichier, vbLf) ' 3 lignes du fichier 'Ferme le fichier sr.Close() m_ContenueCommande = R(0) ' ouverture du programme avec une fenêtre masquée m_AncienFichier = "CR_PRE20200611145811122.CSVEBP.csv" ' présent dans la troisième ligne ' A partir de là je ne comprends plus rien : explique ' C'est quoi strFichier ? m_NouveauFichier = Strings.Replace(strFichier, "D:\CLIENT\DOSSIER\FTP\EXPEDITION\", "") m_NouveauFichier = Strings.Left(m_NouveauFichier, Strings.Len(m_NouveauFichier) - 4) m_NouveauFichier = m_NouveauFichier + "EBP.csv" m_ContenueCommande = Strings.Replace(m_ContenueCommande, m_AncienFichier, m_NouveauFichier) m_ContenueCommande = Strings.Replace(m_ContenueCommande, Chr(34) + Chr(34), Chr(34))
Dim Fichier as String = "Le fichier à utiliser avec son chemin complet" Dim Application as String = "C:\Programme\EBP\Invoicing12.2FRFR40\EBP.Invoicing.Application.exe /Gui=false" Dim Utilisateur as String = "/Database=C:\Users\THIERRYAIS\Documents\DOSSIER.ebp;EBPSDK" Dim Parametre as String = "/Import=""" & Fichier & ";TemporarySaleInvoices;FACTURE CLD"""