IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Problème d'écriture dans un fichier


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 79
    Par défaut Problème d'écriture dans un fichier
    Bonjour a tous,

    J'arrive a killer mes process parfaitement. Maintenant je veux creer un fichier log mais j'ai un soucis car il me cree bien le fichier mais n'ecrit rien dedans.

    Voici mon code

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
     
    Const PID = "_"
    Const terminal = "not_a_TTY"
    Const gravite = "WARNING"
    Const valeur  = "OK"
    Const EVENT_SUCCESS = 0
    Private FSO, FicLog, FicLogBis
     
    main
    sub main()
    Dim NOM_PROCESS
    Dim args
    Set args = WScript.Arguments
    NOM_PROCESS= args(0)
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer 
     
    & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" 
     
    & NOM_PROCESS & "'")
    For Each objProcess in colProcessList
        objProcess.Terminate()
    Next
    end sub
     
    'On instancie l'objet
    Set FSO = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
     
    'On instancie le fichier texte
    Set Ftxt = FSO.CreateTextFile("D:\Script_test", False)
     
     
    'Creation dy fichier Log
     
                    If Err.Number = 0 Then
                            Set Ftxt = FSO.GetFile("D:\Script_test\SYS_LOG_systeme.log")
                            Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
                            FtxtBis.writeline (parametre)
                            FtxtBis.Close
                            Set FtxtBis = Nothing
                            Ftxt.Close
                            Set Ftxt = Nothing
                    Else
                            Set Ftxt = 
     
    FSO.CreateTextFile("D:\Script_test\SYS_LOG_systeme.log", False)
                            Set Ftxt = FSO.GetFile("D:\Script_test\SYS_LOG_systeme.log")
                            Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
                            FtxtBis.writeline (parametre)
                            FtxtBis.Close 'Fermeture
                            Set FtxtBis = Nothing
                            Ftxt.Close
                            Set Ftxt = Nothing
                    End If
                    FSO.Close
                    WScript.Quit(1)
     
    If Err.Number = 0 Then
                    Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
                    Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
                    FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & 
     
    (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 
     
    & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & 
     
    resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & 
     
    (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
                    FtxtBis.Close
                    Set FtxtBis = Nothing
                    Ftxt.Close
                    Set Ftxt = Nothing
            Else
                    Set Ftxt = 
     
    FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", False)
                    Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
                    Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
                    FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & 
     
    (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 
     
    & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & 
     
    resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & 
     
    (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
                    FtxtBis.Close 'Fermeture
                    Set FtxtBis = Nothing
                    Ftxt.Close
                    Set Ftxt = Nothing
            End If
    FSO.Close
     
    WSCript.Sleep intSleep
    Merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 79
    Par défaut
    Hello a tous,

    Personne ne peut m'aider ??

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par lephyrexian Voir le message
    Hello a tous,

    Personne ne peut m'aider ??
    un peu trop "fouilli" ton code ... je ne comprends pas ce que tu fais avec ton Ftxt et ton Ftxtbis

    a priori tu dois pouvoir limiter à une seule ouverture de ton fichier ..

    1/ ouvre ton fichier
    2/ Ecris toutes tes lignes de log
    3/ Ferme ton fichier ...

    essai d'abords avec un log plus simple .. tu rajouteras des lignes ensuite...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 79
    Par défaut
    merci a toi pour ta reponse mais je ne vois vrament pas comme,tu peux faire. Peux tu m'aider en corigeant le code fournit plus haut.

    J'ai vraiment du mal quelq un peuc m aider

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    Dim NOM_PROCESS
    Dim args
    Set args = WScript.Arguments
    NOM_PROCESS= args(0)
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & 
     
    strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where 
     
    Name = '" & NOM_PROCESS & "'")
    For Each objProcess in colProcessList
    objProcess.Terminate()
    Next
     
    'On instancie l'objet
    Set FSO = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
     
    'On instancie le fichier texte
    Set Ftxt = FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", 
     
    False)
     
    'On récupère les variables environnement
     
    Function getSystemVar(VarName)
        Dim wss, env
        Set wss = CreateObject("WScript.Shell")
        Set env = wss.environment("process")
        getSystemVar = env(VarName)
    End Function
     
    'On recupere une partie dela chaine de caractere
     
    resultat1 = Mid(getSystemVar("UNISON_SCHED"),2,3)
    resultat2 = Mid(getSystemVar("UNISON_SCHED"),7,3)
    resultat3 = Mid(getSystemVar("UNISON_SCHED"),5,3)
    resultat4 = Mid(getSystemVar("UNISON_JOB"),14,43)
    resultat5 = Mid(getSystemVar("USERNAME"),13.6)
     
    'Creation dy fichier Log
     
            If Err.Number = 0 Then
                    Set Ftxt = FSO.GetFile("D:\Script_test\SYS_LOG_systeme.log")
                    Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
                    FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & 
     
    (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & 
     
    resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & 
     
    resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & 
     
    resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & 
     
    (message)
                    FtxtBis.Close
                    Set FtxtBis = Nothing
                    Ftxt.Close
                    Set Ftxt = Nothing
            Else
                    Set Ftxt = 
     
    FSO.CreateTextFile("D:\Script_test\SYS_LOG_systeme.log", False)
                    Set Ftxt = FSO.GetFile("D:\Script_test\SYS_LOG_systeme.log")
                    Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
                    FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & 
     
    (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & 
     
    resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & 
     
    resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & 
     
    resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & 
     
    (message)
                    FtxtBis.Close 'Fermeture
                    Set FtxtBis = Nothing
                    Ftxt.Close
                    Set Ftxt = Nothing
            End If
    FSO.Close
    J'ai un peux modifier le code mais la je seche completment

    Merci

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je ne comprends pas trop ce que tu essayes de faire, un exemple de code pour écrire dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Ftxt = FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", False)
    Ftxt.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
    Ftxt.Close

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 79
    Par défaut
    merci a toi pour ton aide J'avance bien.

    J'ai un autre petit soucis. Je voudrais remonté le code erreur du succés ou de l'echec du kill du process.

    Voici mon code qui me permet d'ecrire dans le fichier de log + de killer le process.

    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
    Function getSystemVar(VarName)
        Dim wss, env
        Set wss = CreateObject("WScript.Shell")
        Set env = wss.environment("process")
        getSystemVar = env(VarName)
    End Function
     
    'On recupere une partie dela chaine de caractere
     
    resultat1 = Mid(getSystemVar("UNISON_SCHED"),2,3)
    resultat2 = Mid(getSystemVar("UNISON_SCHED"),7,3)
    resultat3 = Mid(getSystemVar("UNISON_SCHED"),5,3)
    resultat4 = Mid(getSystemVar("UNISON_JOB"),14,43)
    resultat5 = Mid(getSystemVar("USERNAME"),13.6)
     
    main
    sub main()
    Dim NOM_PROCESS
    Dim args
    Set args = WScript.Arguments
    NOM_PROCESS= args(0)
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & NOM_PROCESS & "'")
    For Each objProcess in colProcessList
    Next    
    end sub
     
    message = "Le process" & (NOM_PROCESS)  & "a été killé :"
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Ftxt = FSO.OpenTextFile ("D:\Script_test\Log_test.log",8,true)
    Ftxt.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 & 
     
    vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & 
     
    vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
    Ftxt.Close
    merci pour votre aide precieuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème d'écriture dans un fichier
    Par cartonol dans le forum Oracle
    Réponses: 12
    Dernier message: 17/08/2006, 17h08
  2. [FTP] problème d'écriture dans un fichier
    Par oops! dans le forum Langage
    Réponses: 14
    Dernier message: 08/08/2006, 16h52
  3. problème d'écriture dans un fichier
    Par seurjer dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 09h15
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo