Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1436 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script VBS sous linux ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script VBS sous linux ?

n°715841
FOUINE95
Posté le 09-08-2005 à 12:51:43  profilanswer
 

Hello!
 
Apres avoir posé la question dans le TOPIC dédié a la programmation, on m'a conseillé de venir poser ma question ici.
 
J'ai un script VBS d'une centaine de ligne que j'executai sous wndows. Aujourd'hui je souhaiterai pouvoir l'executer sous linux (Debian 3.1).
 
Comment faire? un simple ./script.vbs ne suffit pas apparement :)
 
Merci ;)

mood
Publicité
Posté le 09-08-2005 à 12:51:43  profilanswer
 

n°715843
Dumbledore
Posté le 09-08-2005 à 12:54:38  profilanswer
 

les vbscript est une techno propriétaire de M$. Je doute qu'il existe un interpréteur vbscript sous Linux.

n°715846
FOUINE95
Posté le 09-08-2005 à 13:04:52  profilanswer
 

ou un convertisseur? ou un language similaire? ou une ame charitable qui voudrai refondre mon script? ou m'aider a le faire?

n°715847
chaica
Posté le 09-08-2005 à 13:07:32  profilanswer
 

Oui bien sûr, il existe le python qui est un très beau langage simple à comprendre et multiplateformes.
Plus d'infos sur le partie Programmation du forum
@+

n°715848
Dumbledore
Posté le 09-08-2005 à 13:07:35  profilanswer
 

Comme langages, t'as le choix :
 
Bash
CSH
Perl
Python
 
Et j'en oublie surement pas mal.

n°715849
jlighty
Posté le 09-08-2005 à 13:08:25  profilanswer
 

Déjà que fait ton script ?
sinon tu peux programmer en Perl, il est disponible sur les 2 plateformes.

n°715854
FOUINE95
Posté le 09-08-2005 à 13:21:37  profilanswer
 

Mon script, c'est ca :
 
'********************************************************************
 
nbjt = 3 ' mettre le nombre de JT désirés
 
HtmlFilePath8 = "France2-8.pls" ' Fichier de destination
HtmlFilePath13 = "France2-13.pls" ' Fichier de destination
HtmlFilePath20 = "France2-20.pls" ' Fichier de destination
 
'********************************************************************
 
Dim MyDate, MyDateRes, Jour, Mois, YYYYMMDD, Heure
Heure = Hour(Now)
j = 1
Flag = 0
Set FSO_my8 = CreateObject("Scripting.FileSystemObject" )
Set MyFile8 = FSO_my8.CreateTextFile(HtmlFilePath8)
Set FSO_my13 = CreateObject("Scripting.FileSystemObject" )
Set MyFile13 = FSO_my13.CreateTextFile(HtmlFilePath13)
Set FSO_my20 = CreateObject("Scripting.FileSystemObject" )
Set MyFile20 = FSO_my20.CreateTextFile(HtmlFilePath20)
MyDate = Date
MyFile8.WriteLine("[Playlist]" )
MyFile13.WriteLine("[Playlist]" )
MyFile20.WriteLine("[Playlist]" )
 
 
'Début de la boucle
 
Do
'génération de la date au format YYYYMMDD
 
If Day(MyDate) < 10 Then
Jour = "0"&Day(MyDate)
Else Jour = Day(MyDate)
End If
If Month(MyDate) < 10 Then
Mois = "0"&Month(MyDate)
Else Mois = Month(MyDate)
End If
YYYYMMDD = Year(MyDate)&Mois&Jour
 
'Création du fichier PLS + URLs
 
'JT de 20H
If Heure > 20 OR Flag > 0 Then
MyFile20.WriteLine("numberofentries="&nbjt&"" )
MyFile20.WriteLine("File"&j&"=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/infos/f2/20h/HD_20h_"&YYYYMMDD&".wmv" )
MyFile20.WriteLine("Title"&j&"=France 2 (20h) du : "&MyDate)
MyFile20.WriteLine("Length"&j&"=-1" )
MyFile20.WriteLine("Version=2" )
j = j + 1
If j > nbjt Then Exit Do
End If
 
 
 
 
Il permet de recomposer l'URL des JT de France2.

n°715856
jlighty
Posté le 09-08-2005 à 13:26:19  profilanswer
 

Bon ça s'annonce bien, ton script ne fait pas appel à des fonctions spécifique à Windows.
Il ne fait qu'ouvrir des fichiers textes pour les modifier par la suite.
Donc au choix :
Perl, PHP et ça doit même être possible de le faire en sh.

n°715964
matafan
Posté le 09-08-2005 à 17:24:53  profilanswer
 

Un truc du genre :

#!/bin/sh
 
nbjt=3  # mettre le nombre de JT désirés
flag=0
 
HtmlFilePath8="France2-8.pls"   # Fichier de destination
HtmlFilePath13="France2-13.pls" # Fichier de destination
HtmlFilePath20="France2-20.pls" # Fichier de destination
 
YYYYMMDD=`date +%Y%m%d`
HOUR=`date +%H`
MYDATE=`date +%x`
 
echo "[Playlist]" > HtmlFilePath8
echo "[Playlist]" > HtmlFilePath13
echo "[Playlist]" > HtmlFilePath20
 
j=1
while [ $j -le $nbjt ]
do
         if [ $HOUR -gt 20 ] || [ $flag -gt 0 ]
         then
                 echo "numberofentries=$nbjt" >> HtmlFilePath20
                 echo  
"File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/infos/f2/20h/HD_20h_$YYYYMMDD.wmv"  
 >> HtmlFilePath20
                 echo "Title$j=France 2 (20h) du : $MYDATE" >>  
HtmlFilePath20
                 echo "Length$j=-1" >> HtmlFilePath20
                 echo "Version=2" >> HtmlFilePath20
                 (( j += 1 ))
         fi
done


Note que j'ai juste traduit ton truc. Ca boucle a l'infini si le script est appele avant 21h.

n°716212
FOUINE95
Posté le 10-08-2005 à 10:04:24  profilanswer
 

Cool :) merci pour ton travail :)
 
Je test ca ce soir !!
 
PS : pour la boucle, en fait je n'ai pas copier/coller l'integralié du script car la fin est un copier/coller du bloc de 20h.

mood
Publicité
Posté le 10-08-2005 à 10:04:24  profilanswer
 

n°716221
FOUINE95
Posté le 10-08-2005 à 10:39:45  profilanswer
 

A la fin j'ai ca :
 
 
'JT de 8H
If Heure > 8 OR Flag > 0 Then
MyFile8.WriteLine("numberofentries="&nbjt&"" )
MyFile8.WriteLine("File"&j&"=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/infos/f2/8h/HD_8h_"&YYYYMMDD&".wmv" )
MyFile8.WriteLine("Title"&j&"=France 2 (8h) du : "&MyDate)
MyFile8.WriteLine("Length"&j&"=-1" )
MyFile8.WriteLine("Version=2" )
j = j + 1
If j > nbjt Then Exit Do
End If
 
MyDate = MyDate - 1
Flag = 1
Loop
 
MyFile8.Close
MyFile13.Close
MyFile20.Close

n°716223
FOUINE95
Posté le 10-08-2005 à 10:58:56  profilanswer
 

Re!
 
Bon j'ai completé le script sur le meme principe que ton aide precieuse :)
 
#!/bin/sh  
 
#Parametrage du nombre de JT
nbjt=3  # mettre le nombre de JT désirés
 
flag=0
j=1  
HtmlFilePath8="France2-8.pls"   # Fichier de destination  
HtmlFilePath13="France2-13.pls" # Fichier de destination  
HtmlFilePath20="France2-20.pls" # Fichier de destination  
echo "[Playlist]" > HtmlFilePath8  
echo "[Playlist]" > HtmlFilePath13  
echo "[Playlist]" > HtmlFilePath20
 
# Génération de la date
YYYYMMDD=`date +%Y%m%d`  
HOUR=`date +%H`  
MYDATE=`date +%x`  
 
#Début de la boucle
while [ $j -le $nbjt ]
do
 
#JT de 20H
         if [ $HOUR -gt 20 ] || [ $flag -gt 0 ]  
         then  
                 echo "numberofentries=$nbjt" >> HtmlFilePath20  
                 echo  
"File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/infos/f2/20h/HD_20h_$YYYYMMDD.wmv" >> HtmlFilePath20  
                 echo "Title$j=France 2 (20h) du : $MYDATE" >> HtmlFilePath20  
                 echo "Length$j=-1" >> HtmlFilePath20  
                 echo "Version=2" >> HtmlFilePath20  
                 (( j += 1 ))  
         fi  
 
#JT de 13H
         if [ $HOUR -gt 13 ] || [ $flag -gt 0 ]  
         then  
                 echo "numberofentries=$nbjt" >> HtmlFilePath13
                 echo  
"File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/infos/f2/13h/HD_13h_$YYYYMMDD.wmv" >> HtmlFilePath13  
                 echo "Title$j=France 2 (13h) du : $MYDATE" >> HtmlFilePath13  
                 echo "Length$j=-1" >> HtmlFilePath13  
                 echo "Version=2" >> HtmlFilePath13  
                 (( j += 1 ))  
         fi
 
#JT de 8H
         if [ $HOUR -gt 8 ] || [ $flag -gt 0 ]  
         then  
                 echo "numberofentries=$nbjt" >> HtmlFilePath8  
                 echo  
"File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/infos/f2/8h/HD_8h_$YYYYMMDD.wmv" >> HtmlFilePath8  
                 echo "Title$j=France 2 (8h) du : $MYDATE" >> HtmlFilePath8  
                 echo "Length$j=-1" >> HtmlFilePath8  
                 echo "Version=2" >> HtmlFilePath8  
                 (( j += 1 ))  
         fi
 
((Mydate -=1))
Flag=1
 
done
 
J'me suis pas planté vers la fin? je ne pourrai le tester que ce soir@home... :)


Message édité par FOUINE95 le 10-08-2005 à 11:03:13
n°716248
FOUINE95
Posté le 10-08-2005 à 14:08:28  profilanswer
 

Bon, je viens de tester le script :
 
Faut bien faire gaffe au majuscule/minuscule :)
Donc j'ai corrigé mon "Flag" de fin en "flag", j'ai fait la meme chose pour "Mydate" en "MYDATE".
 
Par contre la j'ai un probleme. En effet j'ai besoin de prendre la date du jour (aujourd'hui, le 10) et de lui decompter 1. MYDATE -=1 ne fonctionne pas.
 
Un affichage de la valeur de MYDATE me retourne : 10.08.2005
((MYDATE -=1)) ne me donne aps 09.08.2005 :(
 
Une astuce?

n°716300
Dumbledore
Posté le 10-08-2005 à 16:57:26  profilanswer
 

Essaye d'utiliser la date au format AAAAMMJJ, par exemple, pour le 10/08/2005 :  

$ date +"%Y%m%d"
20050810


 
et ensuite :
VARIABLE=`expr $ancienne_date - 1`
 
ou VARIABLE est la variable qui va recevoir la nouvelle date, et ancienne_date est la date à décrémenter.
 
Fais attention aux " ` ", il faut utilisé le guillement se trouvant sur la touche 7 avec alt+gr.

n°716316
FOUINE95
Posté le 10-08-2005 à 17:25:32  profilanswer
 

Merci pour ta reponse; en fait j'ai decoupé la date en 3 variables et ca marche bien.

n°716324
Pillow
'cos the trees won't talk
Posté le 10-08-2005 à 17:42:48  profilanswer
 

HIER=`date --date yesterday +%Y%m%d`

[:god]

n°716353
FOUINE95
Posté le 10-08-2005 à 20:06:55  profilanswer
 

je te souhaite du courage pour decompter sur 3 ou 4 jours en arriere :).
 
je remets le script ou il est est de sa conversion :
 
#!/bin/sh
 
#Parametrage du nombre de JT
nbjt=3  # mettre le nombre de JT désirés
 
flag=0
j=1
HtmlFilePath8="France2-8.pls"   # Fichier de destination
HtmlFilePath13="France2-13.pls" # Fichier de destination
HtmlFilePath20="France2-20.pls" # Fichier de destination
echo "[Playlist]" > HtmlFilePath8
echo "[Playlist]" > HtmlFilePath13
echo "[Playlist]" > HtmlFilePath20
 
# Génération de la date
YYYYMMDD=`date +%Y%m%d`
HOUR=`date +%H`
JOUR=`date +%d`
MOIS=`date +%m`
AN=`date +%Y`
 
#Début de la boucle
while [ $j -le $nbjt ]
do
 
#JT de 20H
         if [ $HOUR -gt 20 -o $flag -gt 0 ]
         then
                 echo "numberofentries=$nbjt" >> HtmlFilePath20
                 echo "File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/inf
os/f2/20h/HD_20h_$YYYYMMDD.wmv" >> HtmlFilePath20
                 echo "Title$j=France 2 (20h) du : $JOUR.$MOIS.$AN" >> HtmlFilePath20
                 echo "Length$j=-1" >> HtmlFilePath20
                 echo "Version=2" >> HtmlFilePath20
                 (( j += 1 ))
        fi
#JT de 13H
         if [ $HOUR -gt 13 -o $flag -gt 0 ]
         then
                 echo "numberofentries=$nbjt" >> HtmlFilePath13
                 echo "File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/inf
os/f2/13h/HD_13h_$YYYYMMDD.wmv" >> HtmlFilePath13
                 echo "Title$j=France 2 (13h) du : $JOUR.$MOIS.$AN" >> HtmlFilePath13
                 echo "Length$j=-1" >> HtmlFilePath13
                 echo "Version=2" >> HtmlFilePath13
                 (( j += 1 ))
        fi
#JT de 8H
         if [ $HOUR -gt 8 -o $flag -gt 0 ]
         then
                 echo "numberofentries=$nbjt" >> HtmlFilePath8
                 echo "File$j=mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/inf
os/f2/8h/HD_8h_$YYYYMMDD.wmv" >> HtmlFilePath8
                 echo "Title$j=France 2 (8h) du : $JOUR.$MOIS.$AN" >> HtmlFilePath8
                 echo "Length$j=-1" >> HtmlFilePath8
                 echo "Version=2" >> HtmlFilePath8
                 (( j += 1 ))
        fi
((JOUR -= 1))
flag=1
done
 
 
Il me reste un probleme. La condition $j -gt $nbjt n'est verifié qu'au debut de la boucle. Si j=nbjt pendant la boucle alors la boucle n'est pas brisé.
 
J'ai essayé de mettre du if/then/break mais j'm'en sors pas :)
 

n°716360
Pillow
'cos the trees won't talk
Posté le 10-08-2005 à 20:35:18  profilanswer
 

FOUINE95 a écrit :

je te souhaite du courage pour decompter sur 3 ou 4 jours en arriere :).

date --date "3 days ago"

:whistle:  
 
 
 
Que se passe-t-il si on lance ton script, disons, le premier septembre ? On te retrouve avec une date négative ? [:opus dei]
Et c'est normal que l'url soit la même quel que soit la date du journal que l'on veut ?
 

Citation :

Il me reste un probleme. La condition $j -gt $nbjt n'est verifié qu'au debut de la boucle. Si j=nbjt pendant la boucle alors la boucle n'est pas brisé.
 
J'ai essayé de mettre du if/then/break mais j'm'en sors pas :)

Tester $j par rapport à $nbjt dans chaque if, et régler $flag en conséquence ?
 
 

n°716406
FOUINE95
Posté le 11-08-2005 à 01:04:25  profilanswer
 

Oui, j'ai oublié de modifier la date de l'URL :)
 
Pour la date le pense que si on est le premier, ca repassera au 31 ou au 30 vu que c'est la fonction DATE qui est appelé.
 
Pour tester $j par rapport à $nbjt, tu ferais comment?

n°716407
matafan
Posté le 11-08-2005 à 01:07:48  profilanswer
 

[ $j -lt $nbjt ]
Ou -le, ou -gt, ou -ge selon ce que tu veux faire.

n°716417
Pillow
'cos the trees won't talk
Posté le 11-08-2005 à 02:35:08  profilanswer
 

FOUINE95 a écrit :

Pour la date le pense que si on est le premier, ca repassera au 31 ou au 30 vu que c'est la fonction DATE qui est appelé.

Tazifiant [:totoz] [:dawao]  
 
 
date n'est appellé qu'au début du script. Si tu lances ton script, disons, le premier septembre à 15H, YYYYMMDD vaudra 20050901. JOUR vaudra 01. N'est ce pas ? On s'occupe des journaux de 8 et 13H, tout va bien. Et là, on décrémente JOUR. Qui vaut donc 00. Et on boucle, en écrivant l'url des journeaux du 0 Septembre 2005 [:god]. Et on pourrait continuer à boucler et écrire les urls des journeaux du -1 Septembre, du -2 Septembre, etc [:god]
 
Il faut donc rappeller date à chaque itération, avec --date="x days ago", où x vaut tour à tour 0, 1, 2, 3, etc... Donc au lieu de décrémenter JOUR, il te faudra incrémenter une variable.
 
Tu peux peut être faire attention au bug qui se produit si on change de jour au cours de l'éxecution du script (par exemple, si on lance le script à 23H59 et 59 secondes, et que l'on assigne une valeur élevée à nbjt, on obtiendra probablement des journeaux en double...).
 
 

Citation :

Pour tester $j par rapport à $nbjt, tu ferais comment?


C'est comme tu veux. Tu pourrais mettre HOUR à -42 ( [:dawao] ) à la fin de la première itération, puis ajouter quelque chose comme ça à la fin des deux premiers if (après l'incrémentation de j):

if [ $j -gt $nbjt ]; then flag=0; fi

Ou un break à la place du flag=0 si tu préfères.

n°716590
FOUINE95
Posté le 11-08-2005 à 16:19:19  profilanswer
 

Je valide :) t'as raison. Faut que je me penche sur le probleme.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script VBS sous linux ?

 

Sujets relatifs
[HELP] Client X, récupérer affichage sur un autre linux[script] ça marche comment??
gentoo linux qu'en pensez vous ?Routeur Wifi Linux et Windows
Quel linux pour mon ftp/samba ? (semi noob inside)aidez moi à installer des applications sous linux
linux sur du read only ?Problème cohabitation Linux - Windows ??
Drivers ATI Linux pb au lancement de l'OSUn Linux itinérant à mettre sur un HD USB ?
Plus de sujets relatifs à : Script VBS sous linux ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR