[BATCH] Variables et fichier .txt [Résolu/Fermé]

Messages postés
4
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
14 décembre 2008
- - Dernière réponse : Unamed
Messages postés
4
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
14 décembre 2008
- 14 déc. 2008 à 13:16
Bonjour,

Je débute actuellement en programmation et l'idée m'est venue de créer un .bat qui écrirait automatiquement dans un fichier texte plusieurs informations sur le PC sur lequel il est exécuté.

Or, je n'arrive pas a faire fonctionner correctement mon .bat :
Prenons par exemple ce bout de code.

@echo off
@echo %COMPUTERNAME% > %CD%\Info.txt
pause

Théoriquement, je devrait me retrouver avec un fichier texte dans lequel serait inscrit le nom de l'ordinateur et qui se trouverait dans le répertoire d'exécution du .bat, Ce qui n'est bien sur pas le cas.
J'ai donc tenté deux chose :

-Écrire un texte simple. Peut être les variables ne sont elles pas acceptées ?

@echo off
@echo blablabla > %CD%\Info.txt
pause

La aussi le fichier texte n'est pas créé.

-Remplacer la variable %CD% de destination par un chemin d'accès normal.

@echo off
@echo %COMPUTERNAME% > C:\Info.txt
pause

Idem, le fichier n'est toujours pas créé.

Cependant, si j'écris ceci :

@echo off
@echo blablabla > C:\Info.txt
@echo %COMPUTERNAME% > C:\Info.txt
pause

Le fichier est bien créé mais la valeur de la variable %COMPUTERNAME% n'apparait pas dans le fichier texte crée, seul blablabla est écrit.

J'aurai donc besoin que vous m'éclairiez sur ce problème en m'expliquant :

-Comment écrire la valeur d'une variable dans un fichier .txt ?
-Comment définir un chemin de destination avec une variable tel que %CD%\Info.txt ?

En espérant avoir été suffisamment clair,
Unamed
Afficher la suite 

5 réponses

Meilleure réponse
6
Merci
Salut, voila un code qui va enregistrer le nom de l'ordinateur et le nom d'utilisateur dans le fichier Info.txt :
La variable %USERNAME% doit être rediriger avec ">>" et non pas ">" (sans les "") car sinon, il ecrasera le contenu du fichier. Le ">>" permet d'ajouter quelque chose sans supprimer se qu'il y avait au départ

@echo off
echo %COMPUTERNAME% > "%CD%\Info.txt"
echo %USERNAME% >> "%CD%\Info.txt"


Si tu as d'autre question, demandes...

@+

Dire « Merci » 6

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70583 internautes nous ont dit merci ce mois-ci

Unamed
Messages postés
4
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
14 décembre 2008
2 -
Merci de ta réponse H4RDW4RE,

Seulement c'est un oubli de ma part, en effet j'utilise bien ">>" pour écrire d'autres informations en fin de fichier.

De plus si tu relis mon message tu remarquera que j'ai spécifié qu'il m'était impossible d'enregistrer la valeur d'une variable avec @echo %VARIABLE% > Fichier.txt car la valeur n'est pas retranscrite dans le fichier texte.
Cela ne répond donc pas à ma question, désolé.

Merci tout de même pour ta rapidité =)

EDIT :

J'ai cependant remarqué que tu avait rajouté des " à la fin et au début du chemin de destination, effectivement sa marche =)
Merci de ton aide
4
Merci
Une variable peut être enregistrer dans un fichier texte comme n'importe quel données (sauf les variables temporaires de la commande FOR)


Exemple :

@echo off
cls
echo.
set /p VAR=Entre un mot au choix : 
echo Votre mot est : %VAR% >> "%CD%\VAR.txt"
exit


Messages postés
4
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
14 décembre 2008
2
1
Merci
Autant pour moi =)

Une dernière chose, Si je défini une variable %VAR% avec comme valeur > NUL et que par la suite je l'inscrit dans un fichier texte, j'ai : "Commande ECHO Desactivé"

Merci encore,
Unamed
Messages postés
190
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
14 décembre 2008
14
1
Merci
salut,

var=
Echo %var% >"%CD%\VAR.txt"


va afficher "Commande ECHO Desactivé" parceque la commande ECHO à la fonction d'afficher du String, ou bien (2e fonction) d'activer/désactiver l'echo, or dans, notre cas la commande ECHO va chercher à afficher ce qui la suit, si elle ne trouve RIEN alors elle se contentera de nous dire si l'echo est activé ou pas.
voir Echo /?

Pour contourner ce problème un simple "." à la suite de la commande Echo permettera de lui "dire" que ce qui suit n'est pas une chaîne mais un retour à la ligne ceci va provoquer la création d'un fichier contenant RIEN ...

le code devient :

var=
Echo.%var% >"%CD%\VAR.txt"



Messages postés
4
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
14 décembre 2008
2
1
Merci
Merci à vous deux pour vos explications =)

Unamed