Supprimer dans un fichier .bat

Signaler
Messages postés
26
Date d'inscription
lundi 26 décembre 2011
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
26
Date d'inscription
lundi 26 décembre 2011
Statut
Membre
Dernière intervention
14 février 2013
-
Bonjour, ce que je demande va être simple voir même enfantin mais je ne comprends pas pourquoi cela ne marche pas

je veux juste que dans mon fichier il remplace la ligne qui porte soit le nom "echo imprimante" ou "blabla" par "RUNDLL32 PrintUI.DLL,PrintUIEntry /y /n """ & Me.txtimp.Text & """"" ).

Voici le CODE :


Dim lines3() As String = File.ReadAllLines("monfichier" & Me.lblnom.Text & ".bat")
Dim writer As New StreamWriter("monfichier" & Me.lblnom.Text & ".bat")
For Each line As String In lines3
If line.Contains("echo imprimante") or ("blabla2") Then
writer.WriteLine("RUNDLL32 PrintUI.DLL,PrintUIEntry /y /n """ & Me.txtimp.Text & """")
End If
Next
writer.Close()

si quelqu'un pouvait m'aider.

actuellement il passe bien dans mon fichier met eu moment d'ecrire il ecrit rien dans le fichier

Merci.

5 réponses


Bonjour,

Mets des points d'arrêts (F9) et exécute ton code en pas à pas (F8) ensuite observe tes variables en les survolant avec ta souris. Vérifie notamment que 'lines3' contient bien quelque chose.
Comme tu lis et écris dans le même fichier, donc que tu l'écrases, vérifie qu'il ne soit pas vide lui aussi avant de lancer ton code.

Autre chose; cette ligne ne peut pas fonctionner :
If line.Contains("echo imprimante") or ("blabla2") Then 

Peut-être qu'un bloc Try/Catch t'empêche de voir ton erreur de 'cast'.
Messages postés
14737
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 novembre 2020
148
Bonjour,

Je pense plutot à Option Strict pour le test :

En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Si(je dis bien si)
A la place de
Dim writer As New StreamWriter("monfichier" & Me.lblnom.Text & ".bat")

Tu fais
Dim writer As New StreamWriter("monfichier" & Me.lblnom.Text & ".Sat")

Et que après la boucle for tu supprimes le fichier .bat source, tu renome le.sat en. Bat

Qui c sa pour ait fonctionner.

Je crois aussi que tu peux changer le if par la fonction remplacer
Messages postés
26
Date d'inscription
lundi 26 décembre 2011
Statut
Membre
Dernière intervention
14 février 2013

Merci à tous, je vais tester cela un peu plus tard..
car au final dans mon programme je voulais changer l'ip des cartes réseau donc je l'ai fait en appelant une commande dos NETSH ... problème c'est que la config doit se faire sur les 2 cartes réseau ( LAN et WIFI )

en tout cas c'est sympa de m'avoir aider

encore MERCI.