[ MS-DOS ] Ouvrir une URL

AnCi3n

Nouveau membre
Bonjour à tous !

Je voudrais ouvrir une page Internet à l'ouverture d'une session sous Windows XP, si l'heure est au dessus de 07h30 et moins de 08h30. Je n'y connais rien, je pense que le plus simple est de faire ceci en .bat, mais je ne sais pas du tout comment, donc je fais appel à vous :) :bounce: !

Merci d'avance,

AnCi3n :) !
 

batchy

Grand Maître
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 ...

Code:
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
Code:
echo. | time | find "time is 07:3"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 07:4"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 07:5"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 08:0"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 08:1"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 08:2"
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 :
Code:
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)
Code:
"C:\Program Files\Mozilla Firefox\firefox.exe" http://salut.les.mecs.fr/
dans de nombreux cas,
Code:
"programme" /?
ou
"programme" --help
donnera des informations sur les paramettres que l'on peut passer au programme

le programme ressemblerai donc a ça :
Code:
@echo off

:: verification du temps
echo. | time | find "time is 07:3"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 07:4"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 07:5"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 08:0"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 08:1"
if not errorlevel 1 goto lancpage
echo. | time | find "time is 08:2"
if not errorlevel 1 goto lancpage
goto fin
:lancpage

:: lance la page
start http://salut.les.mecs.fr/

:fin
 

AnCi3n

Nouveau membre
Merci beaucoup.

Mais je ne comprends pas ces lignes :

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

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 :

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

batchy

Grand Maître
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) :

Code:
X:\> echo . | time
L'heure courante est 21:00:12
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 :
Code:
''est 07:3"
''est 07:4"
''est 07:5"
''est 08:0"
''est 08:1"
''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 :
Code:
'' 07:3"
'' 07:4"
'' 07:5"
'' 08:0"
'' 08:1"
'' 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 ?
 

AnCi3n

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

Mon code :

[cpp]
@echo off

:: Vérification de l'heure

echo. | time | find "time is 07:3"
if not errorlevel 1 goto lancement
echo. | time | find "time is 07:4"
if not errorlevel 1 goto lancement
echo. | time | find "time is 07:5"
if not errorlevel 1 goto lancement
echo. | time | find "time is 08:0"
if not errorlevel 1 goto lancement
echo. | time | find "time is 08:1"
if not errorlevel 1 goto lancement
echo. | time | find "time is 08:2"
if not errorlevel 1 goto lancement
goto Fin

:lancement
:: Lancement de la page
start

:fin[/cpp]
 

batchy

Grand Maître
- pas de tabulation dans un fichier bat, seulement des espaces, et encore ...

- les étiquettes ont une longueur maximale de 8 caractères, ''lancpage'' ça marche, ''lancement'' ça dépasse...
 

AnCi3n

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

[cpp]@echo off


:: Vérification de l'heure

echo. | time | find "time '' 07:3"
if not errorlevel 1 goto lancpage
echo. | time | find "time '' 07:4"
if not errorlevel 1 goto lancpage
echo. | time | find "time '' 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
:: Lancement de la page
start

:fin[/cpp]
 

batchy

Grand Maître
oulà je sait pas ce que j'ai foutu avec mon post ...

essaye ça :
[fixed]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
:fin[/fixed]
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 ...
 

coincoin77

Nouveau membre
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=Mavariable2"

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=Mavariable2"

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 " & " =>

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.
 

coincoin77

Nouveau membre
Je reviens me répondre^^

J'ai trouvé :
start http://"Monsite....ect..."

Voila il faut mettre les guillemets apres le http://

BOnne journée
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 028
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut