Se connecter avec
S'enregistrer | Connectez-vous

[ MS-DOS ] Ouvrir une URL

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

MS-DOS ne supportait pas le reseau TCP/IP en natif, comment veut tu qu'il supporte une commande pour ouvrir une URL ? le batch (rah j'ai du mal a ecrire batch sans ecrire batchy) n'est pas la meilleure methode, mais enfin je vais te la presenter

je suppose donc que tu est sous windows 9x/nt/ME/2k/XP

il y a une commande pour obtenir la date sous windows, mais seulement pour l'afficher sur la sortie standart ...

  1. echo. | time


il faut regarder comment l'heure est sortie, si jamais elle sort de la forme ''Current time is hh:mm:ss'' (anglais)
alors le test suivant renvoie vers :lancpage si on est entre 7h30 et 8h30
  1. echo. | time | find "time is 07:3"
  2. if not errorlevel 1 goto lancpage
  3. echo. | time | find "time is 07:4"
  4. if not errorlevel 1 goto lancpage
  5. echo. | time | find "time is 07:5"
  6. if not errorlevel 1 goto lancpage
  7. echo. | time | find "time is 08:0"
  8. if not errorlevel 1 goto lancpage
  9. echo. | time | find "time is 08:1"
  10. if not errorlevel 1 goto lancpage
  11. echo. | time | find "time is 08:2"
  12. if not errorlevel 1 goto lancpage

c'est pas beau hein ? c'est ça le batchy, c'est du language de mac giver qui font des trucs qui n'aurai jamais du pouvoir faire

ensuite pour afficher une page on a le choix :
si on veut lancer une page avec le navigateur par default on utilise :
  1. start http://salut.les.mecs.fr/

sinon on peut forcer l'usage d'un navigateur en l'invoquant avec l'addresse en paramettre (attention au guillemets)
  1. "C:\Program Files\Mozilla Firefox\firefox.exe" http://salut.les.mecs.fr/

dans de nombreux cas,
  1. "programme" /?
  2. ou
  3. "programme" --help
donnera des informations sur les paramettres que l'on peut passer au programme

le programme ressemblerai donc a ça :
  1. @echo off
  2.  
  3. :: verification du temps
  4. echo. | time | find "time is 07:3"
  5. if not errorlevel 1 goto lancpage
  6. echo. | time | find "time is 07:4"
  7. if not errorlevel 1 goto lancpage
  8. echo. | time | find "time is 07:5"
  9. if not errorlevel 1 goto lancpage
  10. echo. | time | find "time is 08:0"
  11. if not errorlevel 1 goto lancpage
  12. echo. | time | find "time is 08:1"
  13. if not errorlevel 1 goto lancpage
  14. echo. | time | find "time is 08:2"
  15. if not errorlevel 1 goto lancpage
  16. goto fin
  17. :lancpage
  18.  
  19. :: lance la page
  20. start <a href="http://salut.les.mecs.fr/" target="_blank">http://salut.les.mecs.fr/</a>
  21.  
  22. :fin

Merci beaucoup.

Mais je ne comprends pas ces lignes :

  1. echo. | time | find "time is 08:2"
  2. if not errorlevel 1 goto lancpage


Etc ... Dois-je modifier quelque chose là - dedans ?

PS : Quand je le lance ayant modifié l'URL, j'ai réussi à prendre un screenshot entre le fraction de secondes ou la fenêtre DOS s'ouvre et quand elle se ferme, je pense que j'ai tout le message, cela m'affiche :

Citation :
E:\>( carré blanc )
'( carré blanc )' n'est pas reconnu en tant que commande interne
ou externe, un programme éxecutable ou un fichier de commande.
Expert Programmation

en gros il y a un problème avec time : c'est que en fait il renvoie du texte qui dépend de la langue et de la version de windows,
par exemple (purement au hasard) :

  1. X:\> echo . | time
  2. L'heure courante est 21:00:12
  3. Entrez la nouvelle heure :
(on force le fait de pas changer d'heure gràce à ''echo.'')

ensuite la commande find permet de trouver les lignes qui contienne la chaine que l'on lui passe, et renvoie une valeur d'erreur à 1 si jamais elle ne trouve rien

mon but est de tester (dans ce cas) si on trouve l'une des chaines suivante :
  1. ''est 07:3"
  2. ''est 07:4"
  3. ''est 07:5"
  4. ''est 08:0"
  5. ''est 08:1"
  6. ''est 08:2"


mais le ''est'' devant présuppose que Windows soit en français et dans la bonne version, si on fait un script pour soi on regarde comment se comporte sa version de time et on fait en consequence

remarque, si on teste ces chaines la :
  1. '' 07:3"
  2. '' 07:4"
  3. '' 07:5"
  4. '' 08:0"
  5. '' 08:1"
  6. '' 08:2"
(avec un espace devant), on est à peu près sur que ça marche pour un bon nombre de windows, à tester ...

sinon pour ton carré blanc t'a utilisé quel logiciel pour entrer ton batch ?

Et non KangOl lol bah j'ai pris Bloc - Notes et j'ai enregistré en .bat :)  !

Mon code :

  1. @echo off
  2.  
  3. :: Vérification de l'heure
  4.  
  5. echo. | time | find "time is 07:3"
  6. if not errorlevel 1 goto lancement
  7. echo. | time | find "time is 07:4"
  8. if not errorlevel 1 goto lancement
  9. echo. | time | find "time is 07:5"
  10. if not errorlevel 1 goto lancement
  11. echo. | time | find "time is 08:0"
  12. if not errorlevel 1 goto lancement
  13. echo. | time | find "time is 08:1"
  14. if not errorlevel 1 goto lancement
  15. echo. | time | find "time is 08:2"
  16. if not errorlevel 1 goto lancement
  17. goto Fin
  18.  
  19. :lancement
  20. :: Lancement de la page
  21. start <a href="http://www.ratp.info/horaires/index.php?etape=res_bustram_ssotr&ligne=323&arr=323_24_74&dir=R&libligne=IVRY-SUR-SEINE+RER+%2F+ISSY-VAL+DE+SEINE&libarr=AVENUE+ET+FORT+DE+MONTROUGE&libdir=ISSY-VAL+DE+SEINE&reseau=BUS" target="_blank">http://www.ratp.info/horaires/index.php?etape=res_bustr...</a>
  22.  
  23. :fin

J'ai modifié, ça ne change rien ( toujours l'erreur ), mon code maintenant :

  1. @echo off
  2.  
  3.  
  4. :: Vérification de l'heure
  5.  
  6. echo. | time | find "time '' 07:3"
  7. if not errorlevel 1 goto lancpage
  8. echo. | time | find "time '' 07:4"
  9. if not errorlevel 1 goto lancpage
  10. echo. | time | find "time '' 07:5"
  11. if not errorlevel 1 goto lancpage
  12. echo. | time | find "time '' 08:0"
  13. if not errorlevel 1 goto lancpage
  14. echo. | time | find "time '' 08:1"
  15. if not errorlevel 1 goto lancpage
  16. echo. | time | find "time '' 08:2"
  17. if not errorlevel 1 goto lancpage
  18. goto fin
  19.  
  20. :lancpage
  21. :: Lancement de la page
  22. start <a href="http://www.ratp.info/horaires/index.php?etape=res_bustram_ssotr&ligne=323&arr=323_24_74&dir=R&libligne=IVRY-SUR-SEINE+RER+%2F+" target="_blank">http://www.ratp.info/horaires/index.php?etape=res_bustr...</a>''SY-VAL+DE+SEINE&libarr=AVENUE+ET+FORT+DE+MONTROUGE&libdir=''SY-VAL+DE+SEINE&reseau=BUS
  23.  
  24. :fin
Expert Programmation

oulà je sait pas ce que j'ai foutu avec mon post ...

essaye ça :
echo. | time | find " 07:3"
if not errorlevel 1 goto lancpage
echo. | time | find " 07:4"
if not errorlevel 1 goto lancpage
echo. | time | find " 07:5"
if not errorlevel 1 goto lancpage
echo. | time | find "time '' 08:0"
if not errorlevel 1 goto lancpage
echo. | time | find "time '' 08:1"
if not errorlevel 1 goto lancpage
echo. | time | find "time '' 08:2"
if not errorlevel 1 goto lancpage
goto fin
:lancpage
start http://www.ratp.info/horaires/index.php?etape=res_bustr...''SY-VAL+DE+SEINE&libarr=AVENUE+ET+FORT+DE+MONTROUGE&libdir=''SY-VAL+DE+SEINE&reseau=BUS
:fin

l'interpreteur va afficher chaque ligne qu'il execute, tu pourra trouver ou est le problème ...

sinon ton URL est un peu longue je trouve, normalement la longueur maximale d'une ligne de commande MS-DOS c'est 128 (ou 127 ?) faut esperer que Windows XP supporte plus ...

Bonjour,

dsl de faire remonté un peu ce sujet mais j'aurai une question en rapport avec cette commande start je m'explique.

J'utlise un arduino (micro controleur) avec un module de lecture de carte RFID.
Je récupere ID, je concataine une chaine (un string) :
"http://www.lesite.fr?IDCARTE=MaVariable1&IDMicro=Mavari..."

j'envoi cette chaine dans le port COM !
Et mon application client (en java)

Récupere la chaine correctement, je lui demande alors de m'excecuté un : cmd
et je lance la commande :

start "http://www.lesite.fr?IDCARTE=MaVariable1&IDMicro=Mavari..."

et la il m'ouvri une invite de commande et c'est tout :( 
Si je met pas les guillemet il m'ouvre URL jusqu'au " & " => http://www.lesite.fr?IDCARTE=MaVariable1

J'ai l'impression que le " & " pause des soucis a la commande start et que les guillemet ne lui permet pas de reconnaitre le "http" qui est devans et qui sert a lui "donné" le programme à utiliser pour exécuté la commande.

J'espere que je me suis assez bien expliqué et je remercie tout ceux qui pourront m'apporter une piste.
Lassé par la pub ? Créez un compte