Bug script batch

Fermé
matrouxie02 Messages postés 1 Date d'inscription samedi 23 juillet 2022 Statut Membre Dernière intervention 23 juillet 2022 - 23 juil. 2022 à 10:49
brucine Messages postés 14270 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 22 avril 2024 - 23 juil. 2022 à 14:54

Bonjour, j'ai un gros problème :

en faite j'ai écrit un petit script qui permet d'ajouter le texte d'un fichier .txt a une variable le script était fonctionnel pendant un moment puis aujourd'hui le script ne marche pas...

voila le script:

@echo off
set /p var=<aaa.txt
echo %var%
pause

Et voila le fichier aaa.txt:

bonjour!

puis voila le résultat:

@echo off

Appuyez sur une touche pour continuer...

J'ai aussi un autre problème, en faite parfois l'invite de commande (dans d'autres scripts) ecrit la commande echo est desactivée et je pense que c'est par ce que j'ai ecrit cala dans l'invite de commande:

setlocal enabledelayedexpansion 

2 réponses

brucine Messages postés 14270 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 22 avril 2024 1 801
23 juil. 2022 à 11:00

Bonjour,

Ta commande setlocal ne sert à rien s'il n'y a pas par ailleurs une variable à expansion retardée !var! dans ton script mais n'est pas responsable du comportement.

L'erreur echo résulte du fait qu'il y a une erreur de syntaxe dans la commande précédente: echo n'a rien à afficher.

Pour revenir à nos moutons, si ton fichier texte a plusieurs lignes, il fait passer par une syntaxe FOR mais, s'il y en a qu'une, il n'y a pas lieu de le rediriger, écrire:

set /p var=test.txt
echo %var%
pause

0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
23 juil. 2022 à 12:24

bonjour, je pense que le contenu de ton fichier aaa.txt a changé.
que vois-tu en ajoutant:

more <aaa.txt
0
brucine Messages postés 14270 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 22 avril 2024 1 801
23 juil. 2022 à 14:54

Bonjour,

en supposant qu'il y ait un caractère parasite sur la deuxième ligne, il y a de multiples solutions, par exemple la plus simple, mais on ne se met peut-être pas à l'abri d'un parasite sur la première ligne (tabulation...):

setlocal enabledelayedexpansion
set /p a=< test.txt & echo !a!
pause
0