Recuperer une liste pour l'executer en batch

Résolu
Vince -  
 Vince -
Bonjour,
voila j'ai un batch qui traite des url via Curl... mais bon la n'est pas le problème. Le truc c'est que ce bat fait environ 400 ligne execute 5 ligne par adresse IP.
Situation actuelle :
Il y a en tout 80 adresse IP qui sont toutes stockées dans un fichiers excel. Devant me dépecher pour monter un script fonctionnel j'ai entrée toute ces IP en dur dans mon batch (d'ou les 400 ligne ^^). Mais maintenant, j'aimerai crée un script plus dynamique...
Situation que je veux obtenir :
Je souhaiterai que par n'importe quelle méthode (pas forcement batch, j'ai pensé à du VBA par ex.) je puisse aller chercher ces adresse IP, et les balancer dans mon batch. pour ce faire, mon batch ne posséderai que les 5 ligne, avec une variable à la place de l'IP. En clair le batch sera exécuter 80 fois.

Comment faire pour justement arriver à ma 2ème situation ???

Merci de me répondre en esperant que mon post soit assez clair...
A voir également:

18 réponses

cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Bon alors si ton fichier ressemble a sa:
ACDWX-WXC-1,192.168.4.32,0452016546144


Tu peut mettre la commande:
@echo off
for /f "tokens=2 delims=," %%i in ('type classeur1.CSV') do (
commande
)


Voila j'espère t'avoir aider.
Bilou.
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Déjà dit dans le topic 15 :p
0
Vince > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je voudrais pas tout casser mais je fais ce test :

for /f "tokens=2 delims=," %%f in ('Book1.csv') do (
echo %%f
)
pause


et paf la resultat :


C:\Users\Vince\Desktop>for /F "tokens=2 delims=," %f in ('Book1.csv') do (echo %
f )

C:\Users\Vince\Desktop>pause
Appuyez sur une touche pour continuer...
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Vince
 
Je ne sais, pas si c'est ça mais tu as mis des apostrophes autour du nom de fichier. Enlève les tout simplement.
Sinon, si ça ne marche toujours pas, teste :
for /f "tokens=1,2* delims=," %%f in (Book1.csv) do (
echo %%f 
echo %%g
echo %%h
)
pause 
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Haaaa mais il faut mettre type Book1.csv
Donc sa fera:

@echo off
for /f "tokens=2 delims=," %%f in ('type Book1.csv') do (
echo %%f
)
pause 


Bilou.
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
ou tout simplement ne pas mettre d'apostrophes autour de Book1.csv.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
C'est le bordel la convers lool.
Regarde sur mon post 22, il y a un exemple de ce que tu veux faire avec tokens=1,2 par exemple.
http://www.commentcamarche.net/forum/affich 11667037 recuperer une liste pour l executer en batch?#22
1
Vince
 
ahah me disai bien avoir un token avec virgule ^^ mais je retrouvais pas le post (oui je sai je suis ridicule ^^") enfin je viens de test et sa marche merci pr tout les gens... euh plus cas trouver comment valider cette discu moi ^^

aller GooD NighT everybody

et merci encore un fois pr tout

Vince
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Si tu peut faire:
@echo off
for /f "tokens=1,2 delims=," %%i in ('type Book1.csv') do (
echo %%i
echo %%j
)
pause


Bilou.
1
Vince
 
Oui c'est bon mon prob est résolu et tester merci

GN

++
0

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

Posez votre question
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Salut tu peut faire un fichier batch avec toute tes commande est un fichier txt.
Avec les adresse ip.

Bilou.
0
Vince
 
Euh oui, c'est une idée...

Donc cela donnerai un fichier txt:
192.168.4.4
192.168.45.8
192.168.3.5

Mais ensuite je revien au même vu que d'apres ce que j'ai compris tu me propose d'envoyer mes IP une à une, cela ne me crée plus que un batch de 80 ligne --". Yaurai pas un truc (genre boucle for en JAVA) qui irai me cherche une ligne (@IP), met à jour la variable, lance les 5 lignes,va chercher une ligne,met à jour la variable,...

Sa serait possible sa ????
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Ba si voila la commande.
for /f %%i in ('type ip.txt') do (
COMMANDE
)
Et a là place de mettre une ip tu met %%i
J'espère que tu ma comprit.
Sinon donne moi ton script ou ton msn en mp et je t'aide.

Bilou.
0
Vince
 
erf avait pas vu cette commande... --" tkt je sais me servir des variables en BATCH c'est pas très compliquer mais j'étais totalement passé à coté des boucle for en batch --"

Donc je resume

/f c'est pour qu'il prenne ligne par ligne
type ip.txt c'est le nom de doc txt
euh encore deux question si je peux me permettre... (oui je sais j'abuse ^^)

1) ne puis-je pas mettre un fichier .xls dans la boucle au lieu du .txt ???

2) Comment envoyer une liste d'un fichier .xls (genre de A1 à V1) dans un fichier .txt tu fais sa avec une macro ?
ou bien c'est possible en BATCH ??? (car je dois automatiser au max...)

merci de me repondre c'est cool grâce à toi j'ai eco un temps precieux ^^
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Alors le commutateur /f veux juste dire que se qu'il y a dans les parenthèse est une commande (sinon il croit que c'est un fichier)
Ensuite biensur tu peut mettre dans un fichier xls même tout ce que tu veux mais il faut que quand tu l'ouvre avec le bloc-note tu puisse voir tout les ip tout distinct, ce qui n'est pas le cas quand tu enregistre au format xlm avec Exel(dsl).

Sinon je vais continuer a chercher pour t'aider un max.

Sinon file moi ton xls je vais essayer quelque truc.

Bilou.
0
Vince
 
Ben en fait je vais plus clarifier la situation pour que tu comprennes mieux ^^

Je dois gérer un parc de 80 WCX c'est des sorte d'accelerateur si tu vois ce que je veux dire, bref c'est pas importants je peux grâce à Curl obtenir un fichier .CSV avec tout les WXC de mon parc. Ce fichier contient le nom,l'IP et une tonne d'autre info avec comme séparateur des ",". Donc de la j'étais parti sur un solution de macro pour mettre en place (dé séparer les données) et crée un new .xls avec que la colone des IP. Mais peut-être que je peux directement utilisé ce .CSV.... (je n'avais même pas envisager cette solution --") et trouver un moyen pr qu'il ne me prenne que la deuxième donnée à savoir l'IP....

Je continue aussi mes recherches merci de m'aider

Vince
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Sinon, tu sauvegardes ton fichier excel en CSV. Comme ça tu pourras le parcourir avec une boucle for en batch.
Si tu ne peux pas le convertir en CSV ou que cette solution ne te convient pas. Il faudra plutôt utiliser un autre langage de programmation implémentant des modules pour traiter le fichier excel. Je pense au perl par exemple.
Cdlt
0
Vince
 
Wahou je s'avais qui avais un soluce avec le CSV ^^

mais donc si j'ai un truc du genre

ACDWX-WXC-1,192.168.4.32,0452016546144

comment je fais pr que dans ma boucle for il ne me prenne que 192.168.4.32 ???
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Vince
 
Tu peux faire :
for /f "tokens=2 delims=," %%f in (fichier.csv) do echo %%f

Note : remplace %%f par %f si tu testes en ligne de commande ;-))
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Il suffit de la sauvegarder en fichier txt tu peut tu sélectionne test(Dos) dans Type de fichier.

Biloi.
0
Vince
 
ahh... ya pas moyen de go prendre direct le .CSV (j'allais justement faire un test...) mais bon sa change pas le prob que sa me prend tout de même toute la ligne --" donc :

Comment je fais pour n'avoir que l'IP

Oui je sais je suis exigent ^^ nn sans dec merci de m'aider les gens :)
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Sinon je vais essayer de trouver un truc de ouf pour tout séparer et que tu est juste les ip.
Laisse moi un peu beaucoup te temps.
Temps que je cherche une solution.

Bilou.
0
Vince
 
tkt je retourne au taf que demain 8:00 ^^
0
Vince
 
au fait j'ai effectuer un test la... alr donc je peux balancer mon CSV... besoin de le transformer en txt... ^^
le seul hic ben c'est ce que je disai plus haut faut que je n'ai que l'IP car la y me met tout de dedans ^^
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Euhh juste comme sa tu peut me passer ton fichier exel stp.
Ou sinon j'airais voulue savoir si tes ip sont l'un en dessous de l'autre ou tous coller sur la même ligne ?

Bilou.
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
A ouaip dsl j'avais pas vue.
En tout cas j'espère avoir aider vince.

Bilou.
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Tu met:
@echo off
for /f "tokens=2 delims=," %%f in ('Book1.csv') do (
echo %%f
)
pause 

Et voila.

Bilou.
0
Vince
 
aucun changement si ce n'est que le fichier .CSV s'ouvre... (sry oublier de preciser sa avant... --") et qui a que
"Appuyer sur une touche pr continuer..." au cmd

pourtant ait le mm code que vous comprend pas --"
0
Vince
 
G_G les gens vos deux solutions joue impec... c'est tro la classe je viens de gagner 2 jours de taf en moins grâce à vous ^^ thx à tout les 2 vous avez vraiment été simpa de m'aider

aller aller bonne nuit :P à vous merci bcp encore

Vince (qui dès demain s'inscrit car y bcp de gens tro cool dans ce fofo ^^)

++
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
No problèm les forum sont fait pour sa.
N'hésite pas a poster si tu a problème.

PS :N'oublie pas de mettre en Résolue en haut a droite de ton premier post.
Bilou.
0
Vince
 
J'aurai bientot un projet quasi similaire... alr une last question. Je reprend le même exemple, comment je ferai dans le cas ou je devrai recup le nom du WXC et son IP, soit 2 champs...

->2 boucle for ?
ou bien
-> modif niveau tokeng (genre 1,2) avec deux variable déclarer ????
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Vince
 
tokens=1,2 suffit.
Regarde mon post 22, il y avait un exemple que t'as pas dû voir : http://www.commentcamarche.net/forum/affich 11667037 recuperer une liste pour l executer en batch?#22
;-))
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Je crompent pas très bien, il me faudrait un exemple.
Tu c'est quoi je te laisse mon msn en mp quand tu tu créé un compte.
Et tu me tien au courant.

Bilou.
0
Vince
 
c'est que je suis quasiment jamais sur MSN O_o
encore moins au taf...

mais image que ta ceci

ARDES-WXC-1,192.168.45.5,051545465,TKEKDLSJKLS
et que je veux mettre :
->ARDES-WXC-1 dans une variable %%nom
->192.168.45.5 dans une variable %%ip

j'espere que tu comprendra mieux...

j'y go la donc je re sur le fofo demain au pire...

Good Night

Vince
0
Vince
 
euh juste je ferme ou le discussion (pr la valider ) je crois que je peux pas le faire que car mon premier post etait anonyme... (les autres aussi du reste ^^) ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Je m'en charge ;-)).
Bonne nuit.
0
Vince > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
k merci
0