Loop For/F : besoin d'un coup de main
Tofdu31
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Alors, suis pas vraiment expert.
J'ai des données dans un fichier sur chacune des lignes
Je suis en train de construire un batch.
Alors voici mes tests
Donc dans mon fichier final.txt, je trouve bien l'ensemble des lignes du fichier Fichier_data.csv et avec TOTO inséré devant chacune des lignes
Maintenant, si je veux utiliser à la place une variable comme par exemple %cequejecrisavantlaligne% :
Avant bien sur, dans mon script j'ai :
et je mets à la place de TOTO ma variable : %cequejecrisavantlaligne%
ça fonctionne.
Toutefois, si dans ma variable, je mets des caractères spéciaux, jusque là ça marche :
Mais si (et il me le faut) je rajoute un guillemet, là ça marche pas :
set cequejecrisavantlaligne={"name":"
Après lecture de plusieurs tuto, je n'arrive toujours pas à réussir. Comment je peux faire pour que la boucle n'interprète pas les caractères spéciaux ?
Merci pour votre aide
Tof
Alors, suis pas vraiment expert.
J'ai des données dans un fichier sur chacune des lignes
ligne A
ligne B
ligne C
ligne D
ligne E
Je suis en train de construire un batch.
Alors voici mes tests
FOR /F %%i in ('type Fichier_data.csv') do echo TOTO %%i >> final.txt
Donc dans mon fichier final.txt, je trouve bien l'ensemble des lignes du fichier Fichier_data.csv et avec TOTO inséré devant chacune des lignes
Maintenant, si je veux utiliser à la place une variable comme par exemple %cequejecrisavantlaligne% :
Avant bien sur, dans mon script j'ai :
set cequejecrisavantlaligne=TATA
et je mets à la place de TOTO ma variable : %cequejecrisavantlaligne%
FOR /F %%i in ('type Fichier_data.csv') do echo %cequejecrisavantlaligne% %%i >> final.txt
ça fonctionne.
Toutefois, si dans ma variable, je mets des caractères spéciaux, jusque là ça marche :
set cequejecrisavantlaligne={"name":
Mais si (et il me le faut) je rajoute un guillemet, là ça marche pas :
set cequejecrisavantlaligne={"name":"
Après lecture de plusieurs tuto, je n'arrive toujours pas à réussir. Comment je peux faire pour que la boucle n'interprète pas les caractères spéciaux ?
Merci pour votre aide
Tof
Configuration: Windows / Chrome 87.0.4280.67
A voir également:
- Loop For/F : besoin d'un coup de main
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Instagram for pc - Télécharger - Divers Communication
- Fruity loop - Télécharger - Édition & Montage
1 réponse
Bonsoir Tof,
Je ne suis pas un habitué du batch mais ton problème me titillait...
Voici ce que je te propose :
- "delims=" empêche que ta ligne soit coupée au niveau de l'espace ou d'une tabulation qui sont les séparateurs par défaut sinon "ligne A" => "ligne"
- Le guillemet est ajouté échappé par ^ dans le FOR
Si j'ai bien compris le résultat correspond à ton attente.
Je ne suis pas un habitué du batch mais ton problème me titillait...
Voici ce que je te propose :
set cequejecrisavantlaligne={"name":
FOR /F "delims=" %%I IN (Fichier_data.csv) do echo %cequejecrisavantlaligne%^" %%I>> final.txt
- "delims=" empêche que ta ligne soit coupée au niveau de l'espace ou d'une tabulation qui sont les séparateurs par défaut sinon "ligne A" => "ligne"
- Le guillemet est ajouté échappé par ^ dans le FOR
Si j'ai bien compris le résultat correspond à ton attente.