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 :

Modification des paramètres d'un fichier vbs


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur Calcul
    Inscrit en
    Mars 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Calcul

    Informations forums :
    Inscription : Mars 2016
    Messages : 44
    Par défaut Modification des paramètres d'un fichier vbs
    Bonjour,

    Dans le but de paramétrer les valeurs d'un fichier.vbs comportant certains paramètres utilisateurs a modifier, j'ai choisi d'ouvrir et lire le fichier vbs en question sous format txt voici un apercu de mon code :
    Nom : code.png
Affichages : 990
Taille : 20,6 Ko
    Et voici ce j'obtiens en l'exécutant :
    Nom : val.png
Affichages : 800
Taille : 7,6 Ko
    C'est le résultat correspondant au première ligne de mon fichier.vbs que je lis en format txt, vu que je suis débutant sous VBscript je souhaite pouvoir changer les valeurs du a,b,c, d.....

    Merci pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Merci d'utiliser les balises code afin que l'on puisse t'aider.

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Merci d'utiliser les balises code afin que l'on puisse t'aider.
    Remarque pertinente. J'ai aussi à dire qu'une capture d'écran n'est pas utilisable dans un tel cas, il est nécessaire d'envoyer un texte(sans oublier les balises code ) qu'on peut copier et utiliser pour le test, car si on essaie de t'aider, on sera obligé de tout ré-écrire.

    [EDIT] : Quand tu dis
    C'est le résultat correspondant à la première ligne de mon fichier.vbs que .....
    Cela ne peut pas être correct car les valeurs retournées sont sur des lignes différentes(avec retour chariot).
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur Calcul
    Inscrit en
    Mars 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Calcul

    Informations forums :
    Inscription : Mars 2016
    Messages : 44
    Par défaut
    Bonsoir,

    Effectivement, je posterai le code avec les balises, les valeurs retournées ne sont que les lignes existants dans le fichier en lecture txt Model.vbs, je cherche a avoir un script permettant de modifier ces valeurs : a,b,c.. j'ai essayé ForAppending ca n'a pas marché comme je l'aurais souhaité .
    Cordialement;

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut

    Tu sembles avoir une bonne volonté pour progresser, je peux alors te donner un coup demain avec ce
    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
    Option Explicit 
     
    Const ForReading = 1, ForWriting = 2
    Dim fso, F, Affichage, TB, intMsg, iCount, Reponse, Result, Contenu, TargetFile
    Function ReadTextFileTest()
         Dim   Msg ',Folder
         ' On n'a pas besoin de la ligne suivante car si on ne donne pas un chemin pour le 
         ' fichier et on donne juste son nom, Wscript le cherche en premier dans le répertoire 
         ' de travail(répertoire courant).
        ' C'est cette ligne => Folder = Replace(Wscript.ScriptFullName, "\" & Wscript.ScriptName, "") 
         Set fso = CreateObject("Scripting.FileSystemObject") 
         Set F = fso.OpenTextFile("Model.vbs", ForReading, False) 
         ReadTextFileTest = F.Read(1012)
         F.Close
         Set fso = Nothing
    End Function
     
    MsgBox ReadTextFileTest
    Affichage = Mid(ReadTextFileTest, 538, 164)
    MsgBox Affichage
     Set fso = CreateObject("Scripting.FileSystemObject")
     TargetFile = fso.GetFile("Model.vbs").Path
     intMsg = MsgBox("Souhaitez-vous modifier les valeurs des paramètres ?", vbYesNo, "Modifier les paramètres") 
     If intMsg = vbYes Then
        TB = SPlit(Affichage, vbCrlf)
        For iCount = 0 To UBound(TB) - 1
          Reponse = InputBox("Modifier les paramètres ?", "Faire un choix", TB(iCount))
          If Reponse = "" Then 
             MsgBox "Aucune modification n'a été apportée au fichier " & TargetFile
             Wscript.Quit 0
          End If
          Result = Result & Reponse & vbNewLine
        Next
        ' On ajoute la dernière valeur sans retour chariot
        Reponse = InputBox("Modifier les paramètres ?", "Faire un choix", TB(UBound(TB)))
        If Reponse = "" Then 
             MsgBox "Aucune modification n'a été apportée au fichier " & TargetFile
             Wscript.Quit 0
        End If
        Result = Result & Reponse
        ' On lit la totalité du fichier puis on le ferme
        Set F = fso.OpenTextFile("Model.vbs", ForReading, False)
        Contenu = F.ReadAll
        F.Close
        ' On écrit les modifications apportées au fichier et on le ferme
        Set F = fso.OpenTextFile("Model.vbs", ForWriting, False) 
        Contenu = Replace(Contenu, Affichage, Result)
        F.Write Contenu
        F.Close
        MsgBox "Modification terminée"
    Else
        Wscript.Quit 0
    End If
    Adapte le script selon ton besoin notamment les valeurs de début et de fin pour la fonction Mid.
    Le fichier Model.vbs(que j'ai utilisé pour le test) se présente ainsi :
    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
    Option Explicit
     
    Function ShowVolumeInfo(drvpath)
       Dim fso, d, s
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)))
       s = "Lecteur " & d.DriveLetter & " :  " & d.VolumeName
       ShowVolumeInfo = s
    End Function
    'MsgBox ShowVolumeInfo("C:\Windows")
    '==============================
    Function ShowDriveType()
       Dim fso, d, t, Ret, S
       Set fso = CreateObject("Scripting.FileSystemObject")
       For Each d In fso.Drives
          Select Case d.DriveType
              Case 0: t = "Inconnu"
              Case 1: t = "Amovible"
              Case 2: t = "Fixe"
              Case 3: t = "Réseau"
              Case 4: t = "CD-ROM"
              Case 5: t = "Disque virtuel"
          End Select
           If d.IsReady Then 
              S = UCase("Prêt   ") & d.VolumeName 
           Else 
              S = UCase("non Prêt")
           End If
         Ret = Ret & d.DriveLetter & " : " & t & "  [" & S & "]" & vbNewLine
        Next 
       ShowDriveType = Ret 
    End Function
    MsgBox ShowDriveType
    '============================
    Const CDROM = 4
    Const VIRTUAL = 5
    Dim drv, Ret, fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each drv In fso.Drives
        If drv.IsReady  Then
            If drv.DriveType = CDROM  Then
               Ret = "Lecteur CD :  " & drv.DriveLetter & " : " &  drv.VolumeName & vbNewLine & "==============="  & vbNewLine 
            ElseIf drv.DriveType = VIRTUAL  Then
               Ret = "Lecteur Viruel :  " & drv.DriveLetter & " : " &  drv.VolumeName & vbNewLine & "==============="
            End If
        Else 
           Ret = Ret & "Disque " & drv.DriveLetter & " non prêt !"  & vbNewLine
        End If
    Next
    MsgBox Ret
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Cela ne peut pas être correct car les valeurs retournées sont sur des lignes différentes(avec retour chariot).
    Je pense que ça peut être correcte malgré tout. "F.read(1000)" doit lire les retours chariots ?!

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

Discussions similaires

  1. [VBS et HTA] Ajout, modification des commentaires d'un fichier image .jpg
    Par ProgElecT dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 02/07/2015, 20h46
  2. Réponses: 3
    Dernier message: 05/10/2010, 14h48
  3. Configurer des paramétres dans le fichier server.xml
    Par root76 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 13/02/2007, 17h16
  4. Réponses: 3
    Dernier message: 08/02/2007, 22h14
  5. Modification des paramètres régionaux et folders options
    Par Looping_V60 dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 19h02

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