[BATCH] Variables et fichier .txt
Résolu
Unamed
Messages postés
4
Statut
Membre
-
Unamed Messages postés 4 Statut Membre -
Unamed Messages postés 4 Statut Membre -
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
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
A voir également:
- Batch variable
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Echo off batch ✓ - Forum Autoit / batch
5 réponses
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
Si tu as d'autre question, demandes...
@+
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...
@+
Une variable peut être enregistrer dans un fichier texte comme n'importe quel données (sauf les variables temporaires de la commande FOR)
Exemple :
Exemple :
@echo off cls echo. set /p VAR=Entre un mot au choix : echo Votre mot est : %VAR% >> "%CD%\VAR.txt" exit
salut,
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"
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"
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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