#1 [↑][↓] 09-09-2011 20:18:45

pilotepro
Membre
Lieu : Paris
Inscription : 06-08-2011
Renommée :   
Site Web

[FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Bonsoir,
J'aimerais à l'aide d'un fichier ".bat" ou d'une autre méthode d'ailleurs, désinstaller la section correspondant à une scène, voici comment la structure se présente :

[Area.XX]
Title=nomdelascene ==> Information 1
Local=Scenery\dossierdelascene ==> Information 2
Layer=XX
Active=TRUE
Required=FALSE

Sachant que XX, je souhaiterait donc supprimer la section à partir de l'information 1 et 2, supprimer toute la section c'est à dire de "[Area.XX]" à "Required=FALSE", sans me soucier de la valeur de XX. En gros, je doit juste dans le fichier ".bat" donner l'information 1 et 2, et le fichier ".bat" comprend qu'il doit supprimer cette section de son début à sa fin, mais sans toucher aux autres sections de ce fichier "scenery.cfg".

PS : Si cela ne peut être fait avec un fichier ".bat", merci de me donné d'autres solutions.

Merci d'avance de votre aide !

Cordialement
Pilotepro

Dernière modification par pilotepro (09-09-2011 20:45:15)


banniere-fs-paradise.jpg

Hors ligne

#2 [↑][↓] 09-09-2011 21:00:12

Lagaffe
Membre
Lieu : LFPO / retraité
Inscription : 13-03-2008

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

A part la remarque  ...

merci de me donné d'autres solutions.

qui a plutôt tendance à m'irriter (1 - faute de français 2 - on n'a pas obligation de résultat, le boulot c'est pour la journée), je vais essayer de répondre.

Pré-requis: Les Informations 1 et 2 doivent être transmises en paramètres à ton fichier BAT
Premièrement, il faut faire une boucle qui va chercher l'info 1 tout en mémorisant la valeur Aera=XX, cette boucle s'arrête dès que Info1 est trouvé (info1 ou info 1 + info 2, comme tu veux). Tu mémorises à ce moment Aera=XX

Secondo, tu refait une passe dans le Scenery.cfg pour trouver la ligne où se trouve Aera=XX et tu détruis arbitrairement 7 lignes (chaque bloc fait 6 lignes + 1 ligne vide de séparation).

ATTENTION:
1) Il arrive que des fichiers Scenery.cfg aient des rubriques imbriquées et pas dans l'ordre chronologique et donc si tu détruis ces lignes tu n'auras plus de cohérence dans ton fichier.

2) Si ta section est en plein milieu, as-tu pensé qu'il fallait ensuite renuméroter toutes les sections qui suivent à la condition que toutes les sections soient rangées dans l'ordre.

Bref ton projet est un peu ambitieux mais ... tiens nous au courant et penses à faire une sauvegarde en premier dans ton fichier BAT cela te rendra sûrement service.

Dernière modification par Lagaffe (10-09-2011 09:02:39)


@+ Didier
mini-Logo-Beaver-small.jpg
W10 Pro 64b Build 22H2 - Boitier HAF 932 - Z390 STRIX-F - 9900K - 2x16 Go - NVidia 3060 Ti 8 Go - Alim Corsair 800W - Ecran 34" - NVidia Studio ready 536.23
P3D v5.4 = http://www.pilote-virtuel.com/img/members/53/P3Dv5HF-Reglages-A.jpg - MSFS Deluxe/STORE - X-Plane 12B

Hors ligne

#3 [↑][↓] 09-09-2011 23:35:25

pilotepro
Membre
Lieu : Paris
Inscription : 06-08-2011
Renommée :   
Site Web

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Bonsoir,
Tout d'abord je te remercie Lagaffe, pour ton aide et ta patience envers le débutant que je suis dans la matière, en ce qui concerne les fautes d'orthographes, je vais faire des efforts, en ce qui concerne ma phrase "merci de me donné d'autres solutions.", je me suis mal exprimé, ce que je voulais dire, c'est que si il existe une solution alternative au fichier ".bat", que vous puissiez me l'expliquer s'il vous plait. Et en ce qui concerne ton explication elle fût claire et précise, seulement voila, je suis vraiment débutant dans la matière, et je ne sais même pas comment procéder pour effectuer les étapes que tu m'a indiqué. Donc, si tu pouvait me donner un peu d'aide s'il te plait, ou que tu me passe le lien vers un tutoriel, expliquant la fonction que tu décrit. Car, le ".bat" permettant d'ajouté des lignes dans le fichier "scenery.cfg" ne vient pas de moi, il vient d'un forum. D'autre part, en ce qui concerne les deux remarques à propos du programme, je ne sais pas du tout comment y remédier.

Voilà donc si vous pouviez m'aider s'il vous plait, j'en serais ravi, merci d'avance !

EDIT : Je pense que l'on va devoir utilisé la fonction, for /f "tokens=? delims=?]" %%a in ('type scenery.cfg ^| findstr "?"') do set var=%%a mais je ne sais pas comment ça marche, ni comment supprimer une ligne au lieu de modifier sa valeur, j'ai pensé à DEL à la place de SET mais ça ne marche pas, voilà c'est tout ce que j'ai compris du fichier d'install proposé sur l'autre forum.

Cordialement
Pilotepro

Dernière modification par pilotepro (10-09-2011 00:53:49)


banniere-fs-paradise.jpg

Hors ligne

#4 [↑][↓] 10-09-2011 09:22:27

Lagaffe
Membre
Lieu : LFPO / retraité
Inscription : 13-03-2008

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Comme quoi je ne suis pas à l'abri de fautes moi même car je viens d'en trouver une dans ma réponse ... c'est édité et corrigé laugh

Honnêtement, si tu ne connais rien au BAT et que tu débutes ... j'ai peur que tu te plantes très vite.
Néanmoins si tu persistes, je te conseille la lecture de ce post: http://www.pilote-virtuel.com/viewtopic.php?id=31855&p=1 et de faire tes premières armes en réalisant un script qui démarrera FS en automatique, ensuite tu pourras aller plus loin.

Infos sur les fichiers BAT: http://www.hotline-pc.org/batch.htm
Notions de base : http://erci.no-ip.com/origine/divers/tutoriel.pdf

Programme plus adapté pour éditer des fichiers BAT: http://www.libellules.ch/dotclear/index.php?post/2008/05/19/2599-powerbatch

Principales explications sur la ligne de commande:

for /f "tokens=? delims=?]" %%a in ('type scenery.cfg ^| findstr "?"') do set var=%%a

- Il s'agit d'une boucle (for /f ) donc un bout de code que tu vas exécuter tant que la condition sera vérifiée ou ne sera pas
- %%a est une variable qui va évoluer dans la boucle à chaque itération et dont la valeur va être incrémenter de 1
- findstr est une instruction qui te permet de chercher (find) une chaine de caractères (str=string)
- do désigne le début d'une commande

=> on fait une boucle de traitement avec la variable a qui parcourt un fichier scenery.cfg ET (le symbole | ) qui cherche une chaîne de caractères puis qui (instruction do) affecte le contenu de la variable a (var = %%a) dans la variable var dès que le résultat de la recherche est positif


@+ Didier
mini-Logo-Beaver-small.jpg
W10 Pro 64b Build 22H2 - Boitier HAF 932 - Z390 STRIX-F - 9900K - 2x16 Go - NVidia 3060 Ti 8 Go - Alim Corsair 800W - Ecran 34" - NVidia Studio ready 536.23
P3D v5.4 = http://www.pilote-virtuel.com/img/members/53/P3Dv5HF-Reglages-A.jpg - MSFS Deluxe/STORE - X-Plane 12B

Hors ligne

#5 [↑][↓] 10-09-2011 11:51:00

pepe-pompero
Membre
Lieu : Toulouse.
Inscription : 28-12-2009
Renommée :   25 

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Bonjour

PS : Si cela ne peut être fait avec un fichier ".bat", merci de me donné d'autres solutions

Ou je n'ai pas compris ta demande, ou cela correspond au décochage de la ligne dans la bibliothèque des décors.

Si tu ne veux pas que fsx utilise une scène, soit tu la décoche dans la bibliothèque, soit tu la supprime carrément au même endroit.

Tu devra alors la réinscrire chaque fois que tu voudra utiliser la scène.

pépé


Windows 10 ,Intel (R) Core(TM) i7-6700K CPU 4.00GHz, RAM installée 16.0 GO
NVIDIA geForce GTX 1060/3GB

Hors ligne

#6 [↑][↓] 12-09-2011 18:45:56

pilotepro
Membre
Lieu : Paris
Inscription : 06-08-2011
Renommée :   
Site Web

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Bonjour,
Je vous remercie une nouvelle fois de votre aide, j'ai étudier les documents que vous m'avez fourni sur le langage batch, et je dois avoué que c'est vraiment passionnant w00t , très franchement je ne savait pas qu'il était possible de faire autant de choses avec. Alors, en ce qui concerne le sujet principal, donc déjà avant de commencé j'ai essayé de voir comment résoudre les deux problèmes que tu a souligné Lagaffe, donc j'ai commencé par tester les problèmes, j'ai en effet supprimé manuellement un paragraphe de scène en plein milieu du "scenery.cfg", et lancé fsx et à mon grand étonnement toutes mes scènes marchaient quand même, je suis ensuite aller voir mon scenery.cfg après avoir éteint fsx, et comme tu me l'avait dit fsx n'a pas re-numéroter les paragraphes, mais bon vu que ça marche quand même est ce vraiment un problème ? Car, de toute manière lors de l'installation d'une scène avec le ".bat" il incrémentera la valeur du paragraphe de toute manière. J'ai un autre problème, je ne sais pas comment dire au ".bat", de sélectionnez l'information 1 ou 2, car contrairement à la valeur "[Area.XX]", je ne voit pas quelle délimiteurs je pourrait utilisé pour sélectionnez la chaîne de caractères, car malheureusement les lignes commencent par "Title=" et "Local=", or ces deux lignes sont présentes sur tout les paragraphes, et je n'arrive pas à lui dire "sélectionne Title=nomdelascene et non pas Title=", car le signe égal pose problème à mon avis. Et un dernier petit truc, même si je sais comment ajouter les informations dans une variable, je ne sais pas comment utilisé ces variables pour supprimer les lignes en questions.

Voila merci à toi si tu à la patience de m'aider à avancer !

Cordialement
Pilotepro


banniere-fs-paradise.jpg

Hors ligne

#7 [↑][↓] 12-09-2011 19:33:57

Marcstrasb
Modérateur
Lieu : Strasbourg - LFST 69 ans
Inscription : 14-03-2008
Renommée :   41 

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Hello pilotepro

Je suis avec beaucoup d'intérêt le sujet, car j'ai toujours en attente mes fichiers .bat à réaliser, ayant compris le principe mais n'étant pas aussi doué que toi ! eusa_clap eusa_clap eusa_clap eusa_clap

Bonne soirée,
Marc


Windows 10 Professional 64 bits - Z490-A PRO (MS-7C75) DDR4 - Intel(R) Core(TM) i3-10100F CPU @ 3.60GHz - CORSAIR Vengeance LPX CMK16GX4M2E3200C 16 Go -  NVIDIA GeForce GTX 1060 6GB - Alimentation CORSAIR HX 750 Watt - Boitier BeQuiet! Pure Base 500 DX - Microsoft Flight Simulator 2020 Store

Hors ligne

#8 [↑][↓] 12-09-2011 20:04:17

Lagaffe
Membre
Lieu : LFPO / retraité
Inscription : 13-03-2008

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Heureux de voir que tu persistes dans tes recherches et ton but initial.
MS-DOS, cela me rappelle de lointains souvenirs ... du temps où il fallait jongler avec la mémoire EMS et le HIGHMEM pour obtenir le maximum de mémoire sur 1 Mo pour faire fonctionner Falcon 3 ... hé oui, vous avez bien lu la version 3.

[HS] S'il vous reste un CD de Falcon 4 essayer de télécharger la version BMS qui vient de sortir, le spectacle et l'envie de voler en F-16 reviennent vite
[/HS]

Suppresion d'un § en plein milieu
Si par rapport à l'installation de tes scènes tu n'a pas modifié l'ordre des scènes pour mettre un LandClass plus bas ou une Scène tout en haut, la numérotation devrait suivre les §

Signe =
Dans tout langage informatique, il y a des caractères spéciaux et pour que ton code puisse les interpréter comme des caractères normaux, il faut les "déférencer"/différencier des autres caractères spéciaux. Sous BAT, il faudrait que je me replonge dans mes tutos ... j'ai un peu oublié car ces temps-ci je code essentiellement sous sh ou bash pour Linux.
=> http://erci.no-ip.com/origine/divers/tutoriel.pdf

Exemple tiré de http://www.hotline-pc.org/batch.htm

Gérer les caractères réservés
Ces caractères ne peuvent pas être employés "tel quel" dans un script. Le signe % pour être "compris" dans un fichier de script doit être redoublé. Par ailleurs, nous avons déjà vu que pour afficher un caractère réservé il faut le faire précéder du signe ^. Dans ce cas là, il ne sera pas assimilé à une commande mais bien à un caractère. Afin d'afficher les signes : ! ^ & < > >> " | créez un fichier Batch contenant cette commande :
echo ^! ^% ^^ ^& ^< ^> ^>^> ^" ^|
Une manière d'afficher les caractères de redirection :
@echo off
<nul (set /p z=Le^|texte^|de^|sortie) >sortie.txt
Nous redirigeons le produit de la commande "Set" vers le fichier Sortie.txt mais en désactivant toute sortie écran. L'utilisation de la commande "Set" est expliquée juste après.

Dans les liens fournis dans le poste de Marcstrab (recherche dans le forum avec comme mots clé bat et son nom), il y a des tutos qui concerne les problèmes basiques comme lancer un programme avec un argument et l'affectation dans le programme de cet argument à une variable pour ensuite l'exploiter.

Dernière modification par Lagaffe (12-09-2011 20:08:09)


@+ Didier
mini-Logo-Beaver-small.jpg
W10 Pro 64b Build 22H2 - Boitier HAF 932 - Z390 STRIX-F - 9900K - 2x16 Go - NVidia 3060 Ti 8 Go - Alim Corsair 800W - Ecran 34" - NVidia Studio ready 536.23
P3D v5.4 = http://www.pilote-virtuel.com/img/members/53/P3Dv5HF-Reglages-A.jpg - MSFS Deluxe/STORE - X-Plane 12B

Hors ligne

#9 [↑][↓] 13-09-2011 08:09:20

Gérard BERNARD
Membre
Lieu : Montélimar / 76 ans
Inscription : 13-03-2008
Renommée :   22 

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

pepe-pompero a écrit :

Bonjour

PS : Si cela ne peut être fait avec un fichier ".bat", merci de me donné d'autres solutions

Ou je n'ai pas compris ta demande, ou cela correspond au décochage de la ligne dans la bibliothèque des décors.

Si tu ne veux pas que fsx utilise une scène, soit tu la décoche dans la bibliothèque, soit tu la supprime carrément au même endroit.

Tu devra alors la réinscrire chaque fois que tu voudra utiliser la scène.

pépé

J'ajouterai que le fait de décocher une scène dans la biblio FS revient à inscrire
FALSE comme ceci
[Area.XX]
Title=nomdelascene ==> Information 1
Local=Scenery\dossierdelascene ==> Information 2
Layer=XX
Active=FALSE
Required=FALSE

On peut aussi désactiver une scène sans passer par FS (et c'est ce que je pratique chaque fois)
simplement en tapant un double slach "//" devant
//[Area.XX]
Title=nomdelascene ==> Information 1
Local=Scenery\dossierdelascene ==> Information 2
Layer=XX
Active=TRUE
Required=FALSE

Les N°s d'ordre ne gênent en rien le fonctionnement de FS dès lors qu'il n'y a pas de doublon ainsi que pour les Layer.

Maintenant reste à savoir si ça peut se "Batcher" pour notre ami pilotepro


Il ne faut surtout pas mettre les cons en orbite car on ne verrait plus les étoiles wink
Amicalement Gérard
I9 9900K RAM 32go CG RTX 2080 TI 11 Go.  2 X SSD M2 1To + 2X1To SSD STOCKAGE. W10 Hotas Warthog. MSFS DVD

Hors ligne

#10 [↑][↓] 13-09-2011 13:02:21

pilotepro
Membre
Lieu : Paris
Inscription : 06-08-2011
Renommée :   
Site Web

Re : [FS9][FSX]Aide pour automatiser une action avec un ".bat" ou autre

Bonjour,
Au moins, je suis sûr grâce à toi Gérard BERNARD, que les deux problèmes citées plus haut sont réglés, seulement vu que je cherche à faire un travail propre, je souhaite tout de même supprimer la section complète, et je vais essayer de trouver comment faire le "=" en batch car à l'heure actuelle je ne sais toujours pas comment, malgré les pages que tu ma fourni lagaffe (merci d'ailleurs),  le deuxième problème et pas de moindres, je ne voit pas comment supprimer le contenu de la ligne affecté dans la variable, là seule chose que j'ai réussi à faire, c'est supprimer la variable ou encore vider la variable.

Merci d'avance de votre aide.

Cordialement
Pilotepro


banniere-fs-paradise.jpg

Hors ligne

Pied de page des forums