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 :

jonction entre script


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut jonction entre script
    Bonsoir,
    J'ai un script qui me liste les applications des serveurs dans des fichiers .txt et un autre qui me permet de supprimer des lignes dans les fichier .txt serveur
    J'aimerai faire une jonction de ses 2 script mais je n'arrive pas a supprimer les lignes lorsque je réalise cette jonction(j'ai essayé plusieurs solution mais je rencontre des difficultés)
    Merci pour votre aide

    Code VBS : 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
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Ts1 = fso.OpenTextFile("C:\Users\nomsrv.txt")
     
    do while not ts1.AtEndOfStream
    strComputer=ts1.ReadLine
    Set Ts2 = fso.CreateTextFile("C:\Users\" & strComputer & ".txt", True)
     
    Const HKLM = &h80000002
    Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
    objCtx.Add "__ProviderArchitecture", 32
    objCtx.Add "__RequiredArchitecture", TRUE
    Set objLocator = CreateObject("Wbemscripting.SWbemLocator")
    Set objServices = objLocator.ConnectServer(strComputer,"root\default","","",,,,objCtx)
    Set objStdRegProv = objServices.Get("StdRegProv")
     
    Ts2.WriteLine vbNewLine  & strComputer & vbNewLine
    Ts2.WriteLine  "32-bit Applications"
    Ts2.WriteLine  "-------------------" 
     
    Call GetApplications
     
    objCtx.Add "__ProviderArchitecture", 64
    objCtx.Add "__RequiredArchitecture", TRUE
    Set objLocator = CreateObject("Wbemscripting.SWbemLocator")
    Set objServices = objLocator.ConnectServer(strComputer,"root\default","","",,,,objCtx)
    Set objStdRegProv = objServices.Get("StdRegProv") 
     
    Ts2.WriteLine "64-bit Applications" 
    Ts2.WriteLine "-------------------"
     
    On Error resume next  
     
    Call GetApplications
     
    loop
    WScript.quit
     
    Sub GetApplications
     
    ' Use ExecMethod to call the GetStringValue method
    Set Inparams = objStdRegProv.Methods_("EnumKey").Inparameters
    Inparams.Hdefkey = HKLM
    Inparams.Ssubkeyname = "Software\Microsoft\Windows\CurrentVersion\Uninstall\" 
     
    set Outparams = objStdRegProv.ExecMethod_("EnumKey", Inparams,,objCtx) 
     
    For Each strSubKey In Outparams.snames 
     
    Set Inparams = objStdRegProv.Methods_("GetStringValue").Inparameters
    Inparams.Hdefkey = HKLM
    Inparams.Ssubkeyname = "Software\Microsoft\Windows\CurrentVersion\Uninstall\" & strSubKey
    Inparams.Svaluename = "DisplayName"
    set Outparams = objStdRegProv.ExecMethod_("GetStringValue", Inparams,,objCtx) 
     
    if ("" & Outparams.sValue) = "" then
     Ts2.WriteLine strSubKey
    Else
     Ts2.WriteLine Outparams.SValue
    End iF 
     
    Inparams.Svaluename = "QuietDisplayName"
    set Outparams = objStdRegProv.ExecMethod_("GetStringValue", Inparams,,objCtx)
    Ts2.WriteLine "Outparams.SValue"
     
    Next 
    End Sub 
     
     
    Ts2.Close
     
    Const ForReading = 1
    Const ForWriting = 2
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("C:\Users\" & strComputer &", ForReading)
     
    Do Until objFile.AtEndOfStream
        strLine = objFile.ReadLine
        If InStr(strLine, "KB") = 0 Then
            strNewContents = strNewContents & strLine & vbCrLf
        End If
    Loop
     
    objFile.Close
     
    Set objFile = objFSO.OpenTextFile("C:\Users\" & strComputer &", ForWriting)
    objFile.Write strNewContents
     
    objFile.Close

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Mauvais copier/coller ?
    Lignes 75 et 86, erreur de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objFile = objFSO.OpenTextFile("C:\Users\" & strComputer, ForReading)
    '.........
    Set objFile = objFSO.OpenTextFile("C:\Users\" & strComputer, ForWriting)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Par défaut Re : Jonction entre script
    Bonjour,

    Merci pour l'info mais le script ne fonctionne pas. Message d'erreur Fichier not found. Le script cherche à supprimer les lignes alors que mes fichiers serveurs ne sont pas encore crées. Si quelqu'un a une idée, je suis preneur. Merci d'avance!
    Code VBS : 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
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Ts1 = fso.OpenTextFile("C:\Users\nomsrv.txt")
     
    do while not ts1.AtEndOfStream
    strComputer=ts1.ReadLine
    Set Ts2 = fso.CreateTextFile("C:\Users\appli\" & strComputer & ".txt", True)
     
    Const HKLM = &h80000002
    Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
    objCtx.Add "__ProviderArchitecture", 32
    objCtx.Add "__RequiredArchitecture", TRUE
    Set objLocator = CreateObject("Wbemscripting.SWbemLocator")
    Set objServices = objLocator.ConnectServer(strComputer,"root\default","","",,,,objCtx)
    Set objStdRegProv = objServices.Get("StdRegProv")
     
    Ts2.WriteLine vbNewLine  & strComputer & vbNewLine
    Ts2.WriteLine  "32-bit Applications"
    Ts2.WriteLine  "-------------------" 
     
    Call GetApplications
     
    objCtx.Add "__ProviderArchitecture", 64
    objCtx.Add "__RequiredArchitecture", TRUE
    Set objLocator = CreateObject("Wbemscripting.SWbemLocator")
    Set objServices = objLocator.ConnectServer(strComputer,"root\default","","",,,,objCtx)
    Set objStdRegProv = objServices.Get("StdRegProv") 
     
    Ts2.WriteLine "64-bit Applications" 
    Ts2.WriteLine "-------------------"
     
    On Error resume next  
     
    Call GetApplications
     
    loop
    WScript.quit
     
    Sub GetApplications
     
    ' Use ExecMethod to call the GetStringValue method
    Set Inparams = objStdRegProv.Methods_("EnumKey").Inparameters
    Inparams.Hdefkey = HKLM
    Inparams.Ssubkeyname = "Software\Microsoft\Windows\CurrentVersion\Uninstall\" 
     
    set Outparams = objStdRegProv.ExecMethod_("EnumKey", Inparams,,objCtx)
     
     
    For Each strSubKey In Outparams.snames 
     
    Set Inparams = objStdRegProv.Methods_("GetStringValue").Inparameters
    Inparams.Hdefkey = HKLM
    Inparams.Ssubkeyname = "Software\Microsoft\Windows\CurrentVersion\Uninstall\" & strSubKey
    Inparams.Svaluename = "DisplayName"
    set Outparams = objStdRegProv.ExecMethod_("GetStringValue", Inparams,,objCtx) 
     
    if ("" & Outparams.sValue) = "" then
     Ts2.WriteLine strSubKey
    Else
     Ts2.WriteLine Outparams.SValue
     
    End iF 
     
    Next
     
     
    Const ForReading = 1
    Const ForWriting = 2
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("C:\Users\appli\" & strComputer , ForReading)
     
    Do Until objFile.AtEndOfStream
        strLine = objFile.ReadLine
        If InStr(strLine, "KB") = 0 Then
            strNewContents = strNewContents & strLine & vbCrLf
        End If
    Loop
     
    objFile.Close
     
     
    Set objFile = objFSO.OpenTextFile("C:\Users\appli\" & strComputer, ForWriting)
    objFile.Write strNewContents
     
    objFile.Close
     
    End Sub

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Si tu veux indiquer le langage du code (non obligatoire), il faut faire [Code =VBS] ne surtout pas ajouter d'autres balises, et finir la partie code par [/CODE]
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. [AJAX] Conflit entre script Ajax et scripts Javascript
    Par Mingain dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2007, 13h18
  2. Réponses: 9
    Dernier message: 07/08/2007, 22h46
  3. IPC entre scripts VBS
    Par grandtix dans le forum VBScript
    Réponses: 1
    Dernier message: 26/06/2007, 15h23
  4. Passage de variable entre scripts.
    Par Ambrym dans le forum Langage
    Réponses: 3
    Dernier message: 24/08/2006, 20h10
  5. Réponses: 3
    Dernier message: 15/02/2006, 17h46

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