Ecrire dans un batch avec VB.NET

Fermé
Avexo Messages postés 17 Date d'inscription dimanche 12 octobre 2014 Statut Membre Dernière intervention 7 juin 2016 - Modifié par Avexo le 18/12/2015 à 17:07
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 19 déc. 2015 à 13:46
Bonjour,

Je cherche à créer un programme en visual basic qui écrit un fichier batch (en .bat). Voici ce dont j'aurai besoin de faire :

On rentre QSDFGN dans le premier champ de texte (par exemple) puis QZERTYU dans le deuxième champ de texte.
Ensuite on clique sur le bouton créer.

Ce programme en .bat se crée donc (j'aimerai qu'il arrive dans C:\Users\NOM D'UTILISATEUR\Downloads, mais si ça n'est pas possible ça n'est pas bien grave) :

@echo off
echo QSDFGN QZERTYU
A voir également:

2 réponses

Avexo Messages postés 17 Date d'inscription dimanche 12 octobre 2014 Statut Membre Dernière intervention 7 juin 2016 4
19 déc. 2015 à 13:28
J'ai réussi pour récupérer les données du champ de texte, et à créer un fichier en .bat grâce à plusieurs sites, sauf que je n'arrive pas à écrire dedans :

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Try

            'Création d'un flux d'écriture
            Dim sw As New StreamWriter("C:\Users\black\Downloads\resultat.bat")

            'écriture        
            sw.WriteLine("@echo off")
            sw.WriteLine("echo test")

        Catch ex As Exception
            MsgBox(ex.ToString)

        End Try
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
19 déc. 2015 à 13:46
Bonjour,

pour écrire un fichier texte, je préfère utiliser la classe File qu'un stream :

    Private Sub BatAvexo(CheminFichier As String, Mot1 As String, Mot2 As String)
        Dim lignes As New List(Of String)


        'on "construit" le texte ligne par ligne
        lignes.Add("@echo off")
        lignes.Add(String.Format("echo {0} {1}", Mot1, Mot2))

        'ecriture du fichier
        File.WriteAllLines(CheminFichier, lignes)

    End Sub

0