Précédent   Le Forum de Génération Nouvelles Technologies > Logiciels > Développements
S'inscrire FAQ Stats IRC Membres Calendrier Recherche Messages du jour Marquer les forums comme lus

Développements Tout ce qui touche au développement d'applications ou du Web

Réponse
 
LinkBack (15) Outils de la discussion Modes d'affichage
Vieux 25/08/2006, 21h40   15 links from elsewhere to this Post. Click to view. #1 (permalink)
neor
Novice
 
Date d'inscription: août 2006
Messages: 3
Par défaut Batch pour modifier un fichier

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
neor est déconnecté   Réponse avec citation
Vieux 02/09/2006, 00h58   #2 (permalink)
Manium
Vieux
 
Date d'inscription: septembre 2002
Localisation: BHV
Âge: 26
Messages: 4 537
Par défaut

Salut,

ca doit être spécialement un batch ou un petit exe est bon aussi ?
Manium est déconnecté   Réponse avec citation
Vieux 13/09/2006, 19h19   #3 (permalink)
neor
Novice
 
Date d'inscription: août 2006
Messages: 3
Par défaut

je veux le faire une .batch comme ca pares j'aurais la commande si je veux mettre une autre option pour autre chose
neor est déconnecté   Réponse avec citation
Vieux 14/09/2006, 07h49   #4 (permalink)
RSelec
Confirmé
 
Date d'inscription: mai 2006
Localisation: 92800 PUTEAUX
Âge: 35
Messages: 89
Par défaut

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
2)
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
(Là encore, attention aux caractères parasites du style <>& etc...)

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
^^^ Attention, pas testé !!!

#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..."
RSelec est déconnecté   Réponse avec citation
Vieux 14/09/2006, 16h37   #5 (permalink)
neor
Novice
 
Date d'inscription: août 2006
Messages: 3
Par défaut

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)
neor est déconnecté   Réponse avec citation
Réponse


LinkBacks (?)
LinkBack to this Thread: http://forum.generation-nt.com/developpements/batch-modifier-un-fichier-165467/
Envoyé par For Type Date
batch modification - Recherche Google This thread Refback 06/10/2006 23h14
batch modification adresse IP - Recherche Google This thread Refback 06/10/2006 11h56
structure de fichier m3u - Recherche Google This thread Refback 05/10/2006 22h06
exemple findstr - Recherche Google This thread Refback 05/10/2006 18h49
modifier date fichier en batch - Recherche Google This thread Refback 04/10/2006 15h15
commande set en batch pour modifier des fichier - Recherche Google This thread Refback 04/10/2006 13h01
exemple commande findstr - Recherche Google This thread Refback 03/10/2006 17h26
syntaxe remplace ".bat" chaine texte - Recherche Google This thread Refback 03/10/2006 15h42
modifier ip batch - Recherche Google This thread Refback 03/10/2006 09h33
batch replace freeware - Recherche Google This thread Refback 02/10/2006 11h58
mettre reponse dans fichier batch - Recherche Google This thread Refback 01/10/2006 23h29
.bat + adresse ip - Recherche Google This thread Refback 01/10/2006 22h11
batch modification date fichiers - Recherche Google This thread Refback 01/10/2006 15h20
faire un .bat - Recherche Google This thread Refback 01/10/2006 11h39
modifier fichier txt batch - Google Search This thread Refback 01/10/2006 11h11

Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are non
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


Fuseau horaire GMT +2. Il est actuellement 14h27.

S'inscrire Charte Stats IRC FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus