Recuperer une liste pour l'executer en batch

Résolu/Fermé
Vince - 23 mars 2009 à 17:17
 Vince - 23 mars 2009 à 22:42
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 21:59
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 22:00
Déjà dit dans le topic 15 :p
0
Vince > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
23 mars 2009 à 22:03
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > Vince
23 mars 2009 à 22:09
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 22:10
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 22:12
ou tout simplement ne pas mettre d'apostrophes autour de Book1.csv.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 22:26
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
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 22:34
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
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 20:40
Salut tu peut faire un fichier batch avec toute tes commande est un fichier txt.
Avec les adresse ip.

Bilou.
0
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 21:15
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
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 21:34
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 21:42
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > Vince
23 mars 2009 à 21:54
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 21:44
Il suffit de la sauvegarder en fichier txt tu peut tu sélectionne test(Dos) dans Type de fichier.

Biloi.
0
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 21:48
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
tkt je retourne au taf que demain 8:00 ^^
0
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 21:52
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 22:01
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 22:05
Tu met:
@echo off
for /f "tokens=2 delims=," %%f in ('Book1.csv') do (
echo %%f
)
pause 

Et voila.

Bilou.
0
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
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 22:15
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > Vince
23 mars 2009 à 22:25
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 dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
23 mars 2009 à 22:21
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
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 22:42
Je m'en charge ;-)).
Bonne nuit.
0
Vince > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
23 mars 2009 à 22:42
k merci
0