Page 1 sur 1

[..] Création fichier log

Posté : jeu. 13 nov. 2008 10:58
par jcaspar
Bonjour à tous !

Je souhaite créer un fichier log qui inscrit si l'execution a bien fonctionné et le chemin d'acces au fichier comme dans le cas présent //nomdupc/backup$ est ce possible ? Pouvez vous svp
m'expliquer comment faire ?
En vous remerciant pour votre aide et vos conseils :wink:
Jean Marc

Code : Tout sélectionner

#NoTrayIcon
Runas("administrateur",@ComputerName,"xxxx",4,"cmd.exe /c xcopy /Y /E /F  c:\APPLI\*  \\nompc\backup$")
$file = FileOpen("test.log", 1)

; Test si le fichier est ouvert
If $file = -1 Then
    MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier.")
    Exit
EndIf

;FileWrite($file, "Log copie de fichiers")
;FileWrite($file, "Ligne1" & @CRLF)
;FileWrite($file, "Ligne2")
;FileClose($file)



#include <file.au3>
_FileWriteLog(@ScriptDir & "\test.log","Text 1")
_FileWriteLog(@ScriptDir & "\test.log","Text 2")

 

Re: [..] Création fichier log

Posté : jeu. 13 nov. 2008 13:53
par d3v1lm33
alors tu pourrait soit :
-rajouter a ta ligne de commande cmd.exe... ça => " > test.log"
ca va écrire le stdout du programme dans test.log
et après tu peux utiliser fileread si tu as d'autres projets :D

-rajouter a ta ligne de runas dans la section flags $stdout_child
fais bien attention que l'execution de xcopy soit finie
et tu rajoute la commande stdoutread

je ne suis pas sur d'avoir été compris alors je fais deux exemples

exemple n°1 (> test.log)

Code : Tout sélectionner

#NoTrayIcon
Runaswait("administrateur",@ComputerName,"xxxx",4,"cmd.exe /c xcopy /Y /E /F  c:\APPLI\*  \\nompc\backup$ > test.log") ;j'ai changé pour wait comme ça pas d'erreur ;-)
$file = FileOpen("test.log", 1)

; Test si le fichier est ouvert
If $file = -1 Then
    MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier.")
    Exit
EndIf



 
exemple 2

Code : Tout sélectionner

#NoTrayIcon
#include <Constants.au3>
$pid = Runas("administrateur",@ComputerName,"xxxx",4,"cmd.exe /c xcopy /Y /E /F  c:\APPLI\*  \\nompc\backup$","",$STDOUT_CHILD) ;plus de wait pour avoir le pid
$log=""
while 1
$log&=stdoutread($pid) ; il lit le stream stdout
if @error then exitloop ;si c fini il s'arrète
wend
$file = FileOpen("test.log", 1)

; Test si le fichier est ouvert
If $file = -1 Then
    MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier.")
    Exit
EndIf
#include <file.au3>
_filewritetolog($file,$log) ;voila ton log :D
 

Re: [..] Création fichier log

Posté : jeu. 13 nov. 2008 17:13
par jcaspar
:D Merci beaucoup pour vos réponses !
Je coince toujours car rien ne s'inscrit dans mon fichier. J'aurais voulu voir la date et le chemin
ou le script s'execute si cela est possible
exemple date: 13/11/2008 :15.57 \\pc_windows\backup$

Merci d'avance pour vos suggestions :wink:

Jean Marc

Code : Tout sélectionner

$pid = Runas("administrateur",@ComputerName,"xxxx",4,"cmd.exe /c xcopy /Y /E /F  c:\APPLI\*  \\pc_windows\backup$","",$STDOUT_CHILD) ;
_FileCreate("test.log") 
$log="test.log"
while 1
$log&=stdoutread($pid) 
if @error then exitloop 
wend
$file = FileOpen("test.log",1)

If $file = -1 Then
    MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier.")
    Exit
EndIf
 

Re: [..] Création fichier log

Posté : jeu. 13 nov. 2008 17:19
par DJSIR
Pour marquer quelque chose, si tu veux le relire après c'est comme cela :

Code : Tout sélectionner

[Section]
var1=date
var2=heure
var3=pc\\
De toute les façons c'est toujours comme cela. Tout ce passe dans un .ini d'après ce que je connais.

Du coups tu utilisera, IniWrite, sans oublier de mettre la bonne section.

Code : Tout sélectionner

    $file = ("test.log");nom de ton fichier
    $array = IniReadSection($file,"Section"); remplace "Section" par le nom que tu veux (sera affiché dans le ini)
    $tring = @ComputerName
    $name = ("var1")
    IniWrite($file,"Section",$name,$tring);marque dans $file, a la section "Section", a la ligne $name, la valeur $tring.
     MsgBox(64,"MsgBox","Tout c'est passé correctement.")
Pour le nom du PC, tu peux utiliser ceci : @ComputerName qui te donnera le nom propre du PC (que tu as défini a la première utilisation) ou ceci @UserName qui te donnera la nom de l'utilisacteur actuel.

Pour l'heure et l'année termine par @MON - @MDAY - @YEAR - @HOUR - @MIN - @SEC