ecrire sur une seule ligne un programme

ecrire sur une seule ligne un programme - Shell/Batch - Programmation

Marsh Posté le 01-11-2007 à 15:52:59    

Bonjour,
 
voici mon "code"
 
@echo off
set variable=%0
:Boucle
set /a variable+=1
if /i %variable% equ 5 goto :eof
start iexplore.exe url_site1
start iexplore.exe url_site2
start iexplore.exe url_site3
start iexplore.exe url_site4
start iexplore.exe url_site5
ping -n 20 localhost  
taskkill /F /IM iexplore.exe  
goto Boucle

 
Je voudrais pouvoir écrire ma boucle sur une ligne pour remédier à un problème !
 
:Boucle
set /a variable+=1
if /i %variable% equ 5 goto :eof
start iexplore.exe url_site1
start iexplore.exe url_site2
start iexplore.exe url_site3
start iexplore.exe url_site4
start iexplore.exe url_site5
ping -n 20 localhost  
taskkill /F /IM iexplore.exe  
goto Boucle

 
En fait Je souhaites obtenir un exe pour que ce soit plus 'propre' et qu'il ne soit plus possible de l'éditer. Donc pour ça j'ai utilisé la commande system du langage C pour interpréter mes commandes dos et ça me donnait cela:
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. system("path=%path%;C:\Program Files\Internet Explorer;" );
  6. system("@echo off" );
  7. system("set variable=%0" );
  8. system(":Boucle" );
  9. system("set /a variable+=1" );
  10. system("if /i %variable% equ 5 goto :eof" );
  11. system("start iexplore.exe url_site1" );
  12. system("start iexplore.exe url_site2" );
  13. system("start iexplore.exe url_site3" );
  14. system("start iexplore.exe url_site4" );
  15. system("start iexplore.exe" );
  16. system("ping -n 30 localhost" );
  17. system("taskkill /F /IM iexplore.exe" );
  18. system("goto Boucle" );
  19. }


 
Mais le problème c'est que ma boucle n'est pas interprétée correctement puisqu'elle ne s'execute qu'une seule fois, c'est pourquoi je pense qu'il faille intégrer toute la boucle dans une unique commande system mais je ne connais pas l'itération pour le faire !
Je n'ai pas non plus trouvé en cherchant sur le net. Je sais qu'il existe "|" pour par ex :
 
dir /S | tree > c:\liste.txt
 
Mais ça ne m'a rien donné à moins que je ne m'en sois mal servie !!!
 
VOila et merci d'avance, bonne journée !!!


Message édité par darkwall_37 le 01-11-2007 à 15:54:52
Reply

Marsh Posté le 01-11-2007 à 15:52:59   

Reply

Marsh Posté le 01-11-2007 à 16:07:55    

chaque exécution de system() se fait dans un shell à part. Donc chaque system() est indépendant, tu ne peux pas simuler un script avec plusieurs system().

 

Ecris ta boucle en C.

 

Et de toute façon c'est moche ce que tu fais. Je ne comprends pas pourquoi tu ne le fais pas dans un .bat, et gérer la non-modification avec les droits windows.


Message édité par Elmoricq le 01-11-2007 à 16:08:37
Reply

Marsh Posté le 01-11-2007 à 16:29:07    

utilise le kernel dez windows en mode multimédia


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed