Bonjour à tous !
J'ai déployé mon application sur un serveur : te-tst1
dessus, dans le dossier C:\inetpub\wwwroot\CBConfig\Bat\config\ je cré un fichier, disons, toto.txt
ce fichier, je dois le copier dans le dossier qui est sur un autre serveur : 192.168.1.7 dans le dossier \\192.168.1.7\config_files
du coup, j'ai fait le code suivant dans un.bat :
je cré un lecteur réseau, puis je copie le contenu du dossier dans le lecteur créé, et je déconnecte le lecteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 net use L: \\192.168.1.7\config_files /USER:user mdp /persistent:no XCOPY /E C:\inetpub\wwwroot\CBConfig\Bat\config\*.* L: /Y net use L: /delete /Y
code dans visual studio pour appelé le fichier :
mon paramètre permet de récupérer le chemin du fichier bat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public static void ExecuteBatch(string nomFichier) { try { logger.Debug("nomFichier : " + nomFichier); Process P = new Process(); HicefCBEntities db = new HicefCBEntities(); var theParam = (from param in db.Parametres where param.reference == nomFichier select param).FirstOrDefault(); logger.Debug("theParam.libelle : " + theParam.libelle); ProcessStartInfo processInfo; Process process; processInfo = new ProcessStartInfo(theParam.libelle, "/c "); processInfo.Verb = "runas"; processInfo.CreateNoWindow = true; processInfo.UseShellExecute = false; // *** Redirect the output *** processInfo.RedirectStandardError = true; processInfo.RedirectStandardOutput = true; process = Process.Start(processInfo); logger.Debug("processInfo : " + processInfo); logger.Debug("process : " + process); process.WaitForExit(3000); process.Close(); } catch (Exception e) { logger.Error(e.Message); } }
contenu de mon fichier log :
2016-07-22 15:10:12.2000|DEBUG|HicefCB.Controllers.CBController|test
2016-07-22 15:10:12.2000|DEBUG|HicefCB.Controllers.CBController|test
2016-07-22 15:10:36.9900|DEBUG|HicefCB.Controllers.FichierController|config
2016-07-22 15:10:36.9900|DEBUG|HicefCB.Controllers.FichierController|config
2016-07-22 15:10:36.9900|DEBUG|HicefCB.Controllers.Batch|nomFichier : config_files.bat
2016-07-22 15:10:36.9900|DEBUG|HicefCB.Controllers.Batch|nomFichier : config_files.bat
2016-07-22 15:10:37.0056|DEBUG|HicefCB.Controllers.Batch|theParam.libelle : C:\inetpub\wwwroot\CBConfig\Bat\config_files.bat
2016-07-22 15:10:37.0056|DEBUG|HicefCB.Controllers.Batch|theParam.libelle : C:\inetpub\wwwroot\CBConfig\Bat\config_files.bat
2016-07-22 15:10:37.0056|DEBUG|HicefCB.Controllers.Batch|processInfo : System.Diagnostics.ProcessStartInfo
2016-07-22 15:10:37.0056|DEBUG|HicefCB.Controllers.Batch|processInfo : System.Diagnostics.ProcessStartInfo
2016-07-22 15:10:37.0056|DEBUG|HicefCB.Controllers.Batch|process : System.Diagnostics.Process (cmd)
2016-07-22 15:10:37.0056|DEBUG|HicefCB.Controllers.Batch|process : System.Diagnostics.Process (cmd)
le fichier log du bat est toujours vide, mais lorsque je l’exécute à la main, ça fonctionne et ça me donne ça :
C:\inetpub\wwwroot\CBConfig\Bat\config\toto.txt
1 File(s) copied
L: was deleted successfully.
Voilà, si vous avez des questions, n'hésitez pas.
Partager