Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[RESOLU] Mettres 2 variables dans 1 variable
Auteur Message
Répondre en citant
Message [RESOLU] Mettres 2 variables dans 1 variable 
Hello à tous Wink

Je m'arrache les cheveux sur ce problème depuis plusieurs jours. Je voudrais incrémenter une variable avec chaque ligne d'un fichier .txt :

Code:

@echo on
setlocal EnableDelayedExpansion

set var=1
set fichier=C:\PC\tmp2.txt
for /f "delims=" %%c in (%fichier%) do (
if "%var%" == "1" (set var=%%c) else (set var=%var%;%%c)
echo !var!
)
echo !var!

pause



Je voudrais mettre en valeur de la variable var la 1e ligne, puis elle même + ";" + la 2e ligne, etc...
Il me garde toujours en mémoire la valeur 1 que j'initialise au début.

Contenu du fichier tmp2.txt :
C:\PC\tmp\a.txt
C:\PC\tmp\b.txt
C:\PC\tmp\c.txt
C:\PC\tmp\d.txt


Merci d'avance !! Very Happy



Dernière édition par benji0759 le Ven 21 Nov 2014 - 14:40; édité 2 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [RESOLU] Mettres 2 variables dans 1 variable 
Tiens, ceci pourra t'aider :

Code:
set COUNT1=0
For /F "Delims=" %%I In ('Type "tmp2.txt"') Do (
Set LIGNE=%%I
Set /A COUNT1+=1
CALL :DEFINITION
)
goto fin
:DEFINITION
Set var%COUNT1%=%LIGNE%
goto :eof

:fin


Pour chaques lignes de fichier,

ligne 1 dans %var1%
ligne 2 dans %var2%

etc...

PS : n'oublie pas les balises

Pensez à [CODE]

[code"]
code ici
[/code"]

Sans les " bien sur ^^ !!!!!!!




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [RESOLU] Mettres 2 variables dans 1 variable 
Bonjour,

Je n'ai pas bien comprit ce que tu veux en fait. Pourrais-tu nous mettre le contenu du fichier à traiter puis une "forme" de ce que tu voudrais que ce code fasse, en gros la modification que tu veux effectuer sur ce fichier.
Je pense qu'on pourra mieux t'aider.

Et avec ton code Sky après il est obligé de mettre Echo %var1% & Echo %var2% ... Ou passer par une deuxième boucle... Je pense que ce serait mieux de tout faire dans la même boucle Okay

Bye. ++




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message [RESOLU] Mettres 2 variables dans 1 variable 
Salut à vous 2 moz_smile tout d'abord merci pour votre réponse,

Sky ton code me permet bien de récupéré une variable pour chaque ligne, mais comment les mettre toutes dans 1 variable ?

Alons, je n'est pas tous expliquer, j'ai créer un autre code qui me permet de récupéré le nombre de fichiers et leurs noms qui sont présents dans un répertoire :

Code:

@echo off
setlocal EnableDelayedExpansion

REM Recupere le nom des fichiers dans C:\PC\tmp\
forfiles /P C:\PC\tmp /M * -c "cmd /c echo @path>>C:\PC\tmp.txt"

REM Enleve les guillemets
for /F %%A in (C:\PC\tmp.txt) do (
set tmp=%%A
set tmp=!tmp:~1,-1!
echo !tmp!>>C:\PC\tmp2.txt
)

REM Test combien de ligne
set nb=0
set fichier=C:\PC\tmp2.txt
for /f "delims=" %%b in (%fichier%) do (
set /a nb=!nb!+1
)
echo %nb%

set count=0
set var=
cd C:\PC

set fichier=C:\PC\tmp2.txt
for /f "delims=" %%c in (%fichier%) do (
if "%var%" == " " (set var=%%c) else (set var+=%%c)

set /a count=!count!+1
echo !var!
)
echo !var!


echo "Il y a !nb! fichiers restants"
del C:\PC\tmp.txt
del C:\PC\tmp2.txt

pause


Contenu du fichier à traiter :
Code:

C:\PC\tmp\a.txt
C:\PC\tmp\b.txt
C:\PC\tmp\c.txt
C:\PC\tmp\d.txt


Ce que je voudrais faire actuellement c'est de mettre chaque ligne de mon fichier dans une seule variable sous la forme :
C:\PC\tmp\a.txt;C:\PC\tmp\b.txt;C:\PC\tmp\c.txt;C:\PC\tmp\d.txt

Entre chaque nom de fichier il y a un ";" car ensuite je veux me servir de cette variable pour la mettre dans une commande mapisend.exe pour mettre les fichiers en pièces jointes.
Dans le répertoire il peut y avoir qu'un fichier comme il peut y avoir 10 fichiers.

Je ne sais pas si c'est un peu plus claire Smile

Merci !!



Répondre en citant
Message [RESOLU] Mettres 2 variables dans 1 variable 
une manière compacte de faire :

Citation:

set "folder=C:\PC\tmp"
set "folder_content="
for /f "tokens=*" %%i in ('dir /s /b /a-d /on "%folder%\*"') do call set folder_content=%%folder_content%%;%%~i
set folder_content=%folder_content:~1%
echo %folder_content%




Répondre en citant
Message [RESOLU] Mettres 2 variables dans 1 variable 
Salut temp, alors là je suis complètement bluffer Surprised c'est exactement ce que je cherche à faire, et en plus en 5 lignes, parfait Smile

Un grand merci à vous 3 !! Bonne journée Smile



Message [RESOLU] Mettres 2 variables dans 1 variable 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch