[..] Création fichier log

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[..] Création fichier log

#1

Message 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")

 
Avatar du membre
d3v1lm33
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 28 mai 2008 16:03
Status : Hors ligne

Re: [..] Création fichier log

#2

Message 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
 
Venez ici poster les astuces que vous trouvez sur le web, nous les collectionnons !
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Création fichier log

#3

Message 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
 
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [..] Création fichier log

#4

Message 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
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Répondre