[BATCH] Variables et fichier .txt

Résolu/Fermé
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 à 10:27
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

5 réponses

Utilisateur anonyme
14 déc. 2008 à 11:18
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...

@+
6
Unamed Messages postés 4 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 14 décembre 2008 2
14 déc. 2008 à 11:35
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
0
Utilisateur anonyme
14 déc. 2008 à 11:53
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


4
SAW4 Messages postés 190 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 14 décembre 2008 16
14 déc. 2008 à 13:08
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"



2
Unamed Messages postés 4 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 14 décembre 2008 2
14 déc. 2008 à 12:40
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
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Unamed Messages postés 4 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 14 décembre 2008 2
14 déc. 2008 à 13:16
Merci à vous deux pour vos explications =)

Unamed
1