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

  FORUM HardWare.fr
  Windows & Software

  [ FICHIER BATCH ]: Modifier le boot.ini ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ FICHIER BATCH ]: Modifier le boot.ini ?

n°721965
bigstyle
Posté le 06-06-2002 à 19:15:13  profilanswer
 

Voila,encore une question concernant les batchs :D
 
Est-il possible de recuperer toute la fin d un fichier texte a partir d une certaine ligne donnee ?
 
Imaginons que j ai un fichier texte comme ceci
 
nombre 1
ligne 2
nombre 3
ligne 4
nombre 5
ligne 6
 
 
Je desire recuperer dans un nouveau fichier texte toute les lignes a partir de ligne 4 (donc avoir ligne 4 nombre5 ....)
 
C est possible ?
 
Merci.


Message édité par bigstyle le 06-07-2002 à 12:25:14
mood
Publicité
Posté le 06-06-2002 à 19:15:13  profilanswer
 

n°722332
bigstyle
Posté le 06-06-2002 à 22:32:01  profilanswer
 

:bounce:  du soir

n°722344
pink floyd
Trance Is Life...
Posté le 06-06-2002 à 22:36:46  profilanswer
 

oui...
 
 
sous linux  :D


---------------
Oui aux titres de topic clair et precis...
n°722357
bigstyle
Posté le 06-06-2002 à 22:48:02  profilanswer
 

lol.
 
j prefere le challenge sous windows :)
 
Mais si tu dis sous linux et que les outils qui conviennent sont du meme genre que grep etc... ca se trouve aussi sous Zindoz :D

n°722359
pink floyd
Trance Is Life...
Posté le 06-06-2002 à 22:49:48  profilanswer
 

bigstyle a écrit a écrit :

lol.
 
j prefere le challenge sous windows :)
 
Mais si tu dis sous linux et que les outils qui conviennent sont du meme genre que grep etc... ca se trouve aussi sous Zindoz :D  




 
arf tiens merde, ca me fait pensser que je l'avais dl ce freeware qui faisait comme grep mais sous DOS, arf c t koi le nom deja ....


---------------
Oui aux titres de topic clair et precis...
n°722366
bigstyle
Posté le 06-06-2002 à 22:51:54  profilanswer
 

c est dingue au moment ou tu me disais ca,j etais aussi sur cet exe.
 
Je regarde ca tout de suite,merci :)

n°722373
bigstyle
Posté le 06-06-2002 à 22:55:09  profilanswer
 

C est presque ca,sauf que dans mon cas,il faut que ce soit a partir d une suite de caractere donnee.
 
Apparement,la ca fonctionne à partir d'un nombre de ligne donné,or dans mon cas,ce nombre peut varier.

n°722380
boisorbe
Posté le 06-06-2002 à 22:58:03  profilanswer
 

j'ai entendu parler de munge du kit de ressource mais pas tester
;)


---------------
"Tout ce que je sais c'est que je ne sais rien" Socrate
n°722392
bigstyle
Posté le 06-06-2002 à 23:06:07  profilanswer
 

boisorbe : Ca c etait pour mon ancien post munge.exe ;)
 
dacoincoin : j crois que je suis con,mais j ai rien capte :/

n°722395
nono_robot
Posté le 06-06-2002 à 23:06:52  profilanswer
 

Yo ! Bigstyle  :D  
Toujours des trucs de batchs de ouf !  :pt1cable:    ;)  
Tu sais qu'avec un peu de for et de if et de set ca pourrait marche mais tu veux juste reecrire dans le nouveau fichier les lignes trouves apres l'indicateur ou c otre chose ?
ce que je commence a le cerner le Bigstyle !  :D

mood
Publicité
Posté le 06-06-2002 à 23:06:52  profilanswer
 

n°722398
bigstyle
Posté le 06-06-2002 à 23:10:46  profilanswer
 

loll nono_robot  :lol:  
 
En fait,je voudrais recuperer les dernieres lignes du fichier pour les enregistrer dans un autre fichier.
Mais aussi comparer ces lignes a une ligne predefinie.
 
Voila,si j arrive a faire ca,c est gagné  :hap:


Message édité par bigstyle le 06-06-2002 à 23:11:16
n°722407
bigstyle
Posté le 06-06-2002 à 23:20:20  profilanswer
 

bon sinon le mieux,c est peut etre que je pose mon probleme.
 
je me rend compte qu en lisant ma question,ca veut rien dire :)
 
Je souhaite en fait modifier le fichier boot.ini (avec menu etc..)
Le boot.ini se presente comme ca :  
 
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Server" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Pro" /fastdetect
 
 
 
Voila,pour le moment,j arrive (merci nono_robot) a generer un fichier qui me cree ca :  
 
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
 
 
Maintenant,suivant l'OS,je peux avoir,1,2 voir 3 lignes differentes qui representent chacune le boot sur un OS.
 
Je souhaite donc dans un 1er temps recuperer dans un fichier tout ce qu'il a apres le [operating systems] de mon boot.ini
 
Dans un 2eme temps,je devrais verifier que ce que j'aurai recupere (dans mon exemple : multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Server" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Pro" /fastdetect) ait bien au moins une de ses parties qui correspond a mon "default=...." qui est plus haut
Concretement je ne peux pas avoir un default=multi(0)disk(0)rdisk(0)partition(3)\WINNT si cette ligne ne se trouve pas dans [operating systems]
 
Bon pour cette verification je pense que je suis tres mal barre avec des batchs mais bon,je suis ouvert a toutes propositions (hormis le fait de programmer ca en VB,ou autre langage :D )


Message édité par bigstyle le 06-06-2002 à 23:20:53
n°722438
nono_robot
Posté le 06-06-2002 à 23:39:34  profilanswer
 

Ahhhh ben c encore tordu ton truc   :D  
 
Enfin pour le premier temps , si on suppose que [operating systems] se trouve toujours a la meme ligne suffit de faire genre :
For /f "skip=4 delims=," %i in (boot.ini) do @echo %i >> recup.ini en ligne de commande sachant que recup.ini n'existe pas sinon c pas bon forcement.
Si ca se trouve pas a la meme ligne fo compter le nombre de ligne avant de trouver la chaine , avec genre un if bien place et un ptit compteur que tu recupere pour le skip du prochain for , je te laisse le soin de le faire !  :D  
 
Pour le 2eme temps c simple fo faire ca avec les operations sur les chaines de caracteres et des if , je te laisse un indice quand meme :
Set test=Bigstyle
Echo %test:~,3%
 
Voilà enfin ca depend comment sont contruits tes batchs alors c juste des idees.
@+

n°722823
bigstyle
Posté le 07-06-2002 à 11:34:18  profilanswer
 

merciiiiii :)
 
Bon j avance doucement mais surement :D

n°723434
bigstyle
Posté le 07-06-2002 à 16:55:51  profilanswer
 

j y suis quasiment arrive la...
 
Il me manque juste une ptite verification ...
 
En fait,ca concerne la verification de l existence d'une chaine de caractere.
 
Voila,j ai par exemple la ligne :  
 
findstr /C:"%test%" test2.txt
 
Avec en fait %test% equivalent a ca : multi(0)disk(0)rdisk(%Nbdis%)partition(%Nbpla%)
 
et test2.txt represente toutes les lignes de mon boot.ini qui ont les caracteres multi....(tout a partir de la 4eme ligne quoi ,comme tu m avais bien conseille)
 
Voila,en fait,je lui demande de verifier si la chaine de caractere  multi(0)disk(0)rdisk(%Nbdis%)partition(%Nbpla%)
est presente dans le fichier test2.txt.
 
Une fois ici,je suis bloqué  
En fait,si c est present,ca veut dire que l utilisateur aura pas tappe n importe quoi,sinon il devra recommencer.
Mais je n arrive pas a faire comprendre a mon PC,que si findstr /C:"%test%" test2.txt ne trouve pas d'occurence,alors il doit afficher une erreur.
J avais pense redirige le resultat de findstr /C:"%test%" test2.txt vers un fichier et ensuite regarder si ce fichier fait plus de 0 octect mais ca non plus je sais pas faire en batch .ouiiiiiinnn :D


Message édité par bigstyle le 06-07-2002 à 16:56:20
n°723465
nono_robot
Posté le 07-06-2002 à 17:14:59  profilanswer
 

Coucou Bigstyle !  ;)  
 
Bon concernant tes 2 temps en fait on va simplifier à 1 , tu pourra si tu veux redecomposer en 2 , c toi le chef !
L'utilisation de la fonction FINDSTR je vais la laisser tomber coz le resultat donné sous la console me parait difficile à gérer .
Donc tu a dans une variable test la chaine de carac , fabrique par tes ptites mains , qui correspond à la ligne  
"default=multi(..."
Avant de faire la comparaison avec le fichier boot.ini t'ora pris soin de virer le debut : "default=" de ta variable test,bla bla...
 
Ensuite c tout bete t'initialise une variable genre :
 
Set trouve=faux
 
et tu recherche l'occurence qui t'interresse dans le fichier sans passer par la reinscription du fichier :
 
For /f "skip=4 delims==" %i in (boot.ini) do if /I "%i" == "%test%" set trouve=vrai
Echo %trouve%
 
Voilà de là si au moins 1 occurence du contenu de ta variable test se trouve dans le fichier boot.ini à partir de la ligne 5 la variable trouve sera egal à vrai.
 
La fonction For est ton amie !  :D  
 
Allez @+
Ouais Tordu le Bigstyle ;)

n°723763
bigstyle
Posté le 07-06-2002 à 20:19:47  profilanswer
 

Merciii nono_robot :D
 
J ai teste mais cette fois ca passe pas :)
 
Apparement pour que cela prenne la valeur "VRAI" il faut que TOUTE la ligne de mon boot.ini soit egale a ma variable test.
 
Or ma variable test est egale a : multi(0)disk(0)rdisk(%Nbpla%)partition(%Nbdis%)  alors que dans mon fichier boot,les lignes correspondantes aux [operating systems] sont de cette forme :  
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professionnel" /fastdetect
 
 
donc prooooobleme :)
Mais je lache pas l affaire ! :D

n°723852
nono_robot
Posté le 07-06-2002 à 21:34:40  profilanswer
 

Ah ok !
J'a pas bien fait gaffe.  :pt1cable:  
C simple j'ai basé la precedente fonction for sur le delimiteur "="
donc une commande de ce type :
for /f "skip=4 delims==" %i in (boot.ini) do @echo %i
donnera un truc du genre :
multi(0)disk(0)rdisk(2)partition(1)\WINNT
donc sans le reste de la ligne ="Micros...
Il te suffit je pense d'utiliser le delimiteur "\"
donc ca donne :
 
Set trouve=faux  
For /f "skip=4 delims=\" %i in (boot.ini) do if %i == %test% set trouve=vrai  
Echo %trouve%  
 
J'ai enleve le /I et les " puisque c t pour mes tests mais t'a pas besoin en fait.
 
Voilà ca devrait etre bon la .  :D  
@+

n°724143
bigstyle
Posté le 08-06-2002 à 00:53:01  profilanswer
 

oh merde,j crois que c est bon ! :D
 
Bon j continue un peu les tests voir si ca respecte tout bien :)

n°724931
bigstyle
Posté le 08-06-2002 à 17:33:56  profilanswer
 

merci beaucoooooooup nono_robot !!!
 
Serieux,j'ai une dette envers toi maintenant ! ;)
Si t as besoin de quelque chose n hesites pas.
 
En fait,j'ai test ca sous win2k et ca passe impec par contre,j'ai remarque sous windows 98 et j imagine 95 aussi,la syntaxe set /p n'est pas reconnue donc ca fonctionne pas.
mais bon,c est pas trop grave :D

n°725020
nono_robot
Posté le 08-06-2002 à 19:10:41  profilanswer
 

You're Welcome
C'est un forum d'entraide !  :sol:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software

  [ FICHIER BATCH ]: Modifier le boot.ini ?

 

Sujets relatifs
Erreur fichier lors de l'installation de Windows 2000 Pro [HELP]fichier hiber.sys ki est il?
Combien de temps pour graver un fichier bin avec cdrwin ?Comment deproteger un fichier Excel ou Word sans MDP ?
MSDOS sortie d'un fichier .bat ou .cmdScript et récupération de fichier sur le web [aide plz]
Fichier en .dat ?[HELP!!!] Lancer un fichier HTML a partir d'un document access
Fichier caches par windows/compteComment transférer un fichier d'un Mac sur un PC par un réseau ?
Plus de sujets relatifs à : [ FICHIER BATCH ]: Modifier le boot.ini ?


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