|
|||||||
| Développements Tout ce qui touche au développement d'applications ou du Web |
![]() |
|
|
LinkBack (15) | Outils de la discussion | Modes d'affichage |
|
|
#1 (permalink)
|
|
Novice
![]() Date d'inscription: août 2006
Messages: 3
|
bonjour,
je cherche a faire un .bat pour modifier l'ip dans un fichier m3u j'essaye d'expliquer Lol j'ai un fichier m3u avec une ip local "#EXTM3U #EXTINF:-1,M3U http://192.168.0.1:1233" et je voudrais faire un batch qui demande par exemple "quelle est votre ip?" "reponse : 192.168.0.1" entrée et le fichier est modifier je sais pas si j'ai bien explique lol si vous avez une idée SVP |
|
|
|
|
|
#4 (permalink) |
|
Confirmé
![]() Date d'inscription: mai 2006
Localisation: 92800 PUTEAUX
Âge: 35
Messages: 89
|
Bonjour,
En fait, tout dépend de la demande... 1) Si le fichier a toujours la même structure, alors tu peux le générer à la volée avec de simples commandes ECHO (Attention aux caractères parasites...) Du style: Code:
@ECHO OFF SET /P IP=Entrer Votre Adresse IP= ECHO "#EXTM3U>Fichier.m3u ECHO #EXTINF:-1,M3U>>Fichier.m3u ECHO http://%IP%:1233">>Fichier.m3u Si maintenant, tu veux faire fonctionner ce batch sur différents .m3u, mais dont l'ancienne adresse IP est connue, alors tu peux faire: Code:
@ECHO OFF
SET /P NewIP=Entrer Votre Adresse IP=
SET OldIP=192.168.0.1
FOR /F "delims=" %%L IN (Fichier.m3u) DO (
SET Text=%%L
CALL :Replace
) >>Fichier2.m3u
GOTO End
:Replace
CALL SET NewText=%%Text:%OldIP%=%NewIP%%%
ECHO %NewText%
:End
3) Si maintenant tu ne connais rien, c'est à dire ni la structure du fichier, ni l'adresse IP, là ça se complique... Il faut remplacer l'adresse IP du Fichier en faisant des recherches par expression régulière. Il n'y a pas vraiment de solution en "batch pur". La commande FindStr ne permet que de faire par exemple des recherches de chaines texte à l'aide d'expressions régulières (Et encore, en affichant la ligne entière contenant la chaine en question), mais en aucun cas ne sait remplacer une chaine texte. Quelques pistes: # Tu développes ton propre petit .exe en C par exemple qui te permet de le faire, que tu appellera dans ton batch. # Tu peux écrire un petit VBS, Fichier que tu appelles dans ton batch. Exemples de fonctions à appeler dans ton VBS: Code:
Set oShell = WScript.CreateObject ("WScript.shell")
Set fso = CreateObject("Scripting.FileSystemObject")
set objf = fso.OpenTextFile("fichier.m3u", 1)
StrFile = objf.ReadAll
set QExpr = new RegExp
QExpr.Pattern = "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
QExpr.IgnoreCase = false
QExpr.Global = true
set QResult = QExpr.Execute(StrFile)
RecherchExprRegul=""
StrFileTemp = StrFile
For each QR in QResult
RecherchExprRegul=QR
StrFileTemp = replace(StrFileTemp,RecherchExprRegul,"194.98.0.20")
Next
objf.Close
set objf = fso.OpenTextFile("fichier2.m3u", 2, false)
objf.write StrFileTemp
objf.Close
#Tu peux utiliser un freeware qui a ces fonctionnalités. Il y en a quelques-uns venant du monde UNIX, portés sur Win32 qui font ce genre de choses. Un exemple : SED sed, the stream editor En prenant par exemple la version GNU sed v4.0.7 (gsed407x.zip), tu peux faire ce genre d'opération complète. Des tutos supplémentaires: Sed for Windows Exemple: Code:
sed --text -e "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]/194.98.0.20/" fichier.m3u En espérant avoir répondu à ta question. ![]()
__________________
RSelec "La connaissance appartient à tout le monde..." |
|
|
|
|
|
#5 (permalink) |
|
Novice
![]() Date d'inscription: août 2006
Messages: 3
|
merci
ca fonctionne avec le premier batch juste un truc y a pas moyen de lui dire de mettre http://192.168.0.1:1233 ligne 3 car sinon il ajoute a chaque fois #EXTINF:-1,M3U Code:
@ECHO OFF SET /P IP=Entrer Votre Adresse IP= ECHO http://%IP%:1233>>Fichier.m3u (ligne 3) |
|
|
|
![]() |
|
|
|||
|
||||
| Outils de la discussion | |
| Modes d'affichage | |
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Commandes SMTP en fichier batch | Moustache77 | Réseaux locaux | 2 | 24/04/2006 14h45 |
| logiciel pour modifier un dvd | Floparty | Gravure | 5 | 10/09/2005 15h43 |
| fichier batch, domaine et workgroup | dje17 | Windows serveurs 2003, 2000, NT4 | 5 | 25/07/2005 18h08 |
| un fichier batch | Tux | Développements | 3 | 10/07/2003 02h54 |
| fichier batch pour pcanywhere | billou93 | Autres applications | 5 | 19/04/2003 19h43 |