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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Fichier initialisation ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Fichier initialisation ?

n°383524
Lorogima
Posté le 05-05-2003 à 23:11:20  profilanswer
 

Salut,  
J'ai créé sous MS-DOS un batch de transfert de fichiers. Lorsqu'on lance le batch la 1ère fois, il faut insérer 2 arguments: le répertoire source et le répertoire destination. Je souhaiterais alors garder source et destination définitivement, sauf quand je veux les modifier.  
Solutions ?  
-> Utiliser variables d'environnement (SET...) mais ce n'est que temporaire.  
-> Insérer SET dans autoexec.bat mais fichier inexistant sous WindowsXP.  
-> Créer un fichier d'initialisation (.ini) mais comment reprendre une ligne de texte (source ou destination) dans ce fichier et le lier au .bat (FIND inexistant sur dernière version DOS) ?  
-> Autre... ?  
Je souhaiterais ainsi que tout utilisateur puisse lancer mon .bat sans source et destination les fois suivantes, sans rien modifier sur sa machine.  
Comment faire ?
 
Merci d'avance ;)
 

mood
Publicité
Posté le 05-05-2003 à 23:11:20  profilanswer
 

n°383865
JPA
Posté le 06-05-2003 à 10:08:34  profilanswer
 

les données passés en paramètres sont stockées dans %1, %2 %3 etc.
 
donc tu fais un batch de ce style :

if exist %1 goto param
ta_commande rep_source rep_destination
goto fin
 
:param
if not exist %2 goto erreur
ta_commande %1 %2
goto fin
 
:erreur
echo si vous spécifiez le rep source,
echo vous devez aussi spécifier le repertoire destination
 
:fin


N.B., je n'ai pas testé, et je ne me rappelle plus si dans le batch tu dois doubler les % pour les paramètres.
 
A+


Message édité par JPA le 06-05-2003 à 10:09:52
n°383870
vimaster
i love vi editor it's the best
Posté le 06-05-2003 à 10:11:06  profilanswer
 

Lorogima a écrit :

Salut,  
J'ai créé sous MS-DOS un batch de transfert de fichiers. Lorsqu'on lance le batch la 1ère fois, il faut insérer 2 arguments: le répertoire source et le répertoire destination. Je souhaiterais alors garder source et destination définitivement, sauf quand je veux les modifier.  
Solutions ?  
-> Utiliser variables d'environnement (SET...) mais ce n'est que temporaire.  
-> Insérer SET dans autoexec.bat mais fichier inexistant sous WindowsXP.  
-> Créer un fichier d'initialisation (.ini) mais comment reprendre une ligne de texte (source ou destination) dans ce fichier et le lier au .bat (FIND inexistant sur dernière version DOS) ?  
-> Autre... ?  
Je souhaiterais ainsi que tout utilisateur puisse lancer mon .bat sans source et destination les fois suivantes, sans rien modifier sur sa machine.  
Comment faire ?
 
Merci d'avance ;)
 
 


 
 
si seulement tu travaillais pas sur un OS aussi Minable :-D
 
sous unix ou mieux encore sous linux pour utiliser du soft libre et qui plus est gratuit, c'est d'uns simplicité effrayante...
 
mais kro$oft c'est pas possible de faire ça en batch en effet leur shell (DOS) n'est pas assez souple d'une part, ni complet d'autre part. :fou:


---------------
I love vi editor. it's the best one.
n°383942
JPA
Posté le 06-05-2003 à 10:41:09  profilanswer
 

Mais si c'est possible, en détournant l'utilisation habituelle des commandes du DOS...
Je vais compléter mon exemple en créant des fichiers de paramétrage :
si il n'y a pas de paramètres, on utilise les paramètres stockés dans un fichier
si il y a des paramètres, on crée (ou modifie) deux fichiers contenant ces paramètres
 


if exist %1 goto param  
if not exist c:\_param1.bat goto erreur2
call c:\_param1.bat
call c:\_param2.bat
 
ta_commande %param1% %param2%       remarque ou %%param1%% ...à tester  
goto fin  
 
:param  
if not exist %2 goto erreur  
echo set param1=%1>c:\_param1.bat
echo set param2=%2>c:\_param2.bat
call c:\_param1.bat
call c:\_param2.bat
 
ta_commande %1 %2  
goto fin  
 
:erreur  
echo si vous spécifiez le rep source,  
echo vous devez aussi spécifier le repertoire destination  
goto fin
 
:erreur2
echo les fichiers d'initialisation n'ont pas été créés
echo veuillez saisir la commande sous la forme
echo commande répertoire_source répertoire_destination
 
:fin  


 
Celà nécessite que tous les utilisateurs aient le droit d'écrire sous c:\
sinon, il faut modifier le script
 
A+
 
P.S. j'ai écrit celà de tête, sans tester
 
edit : correction d'erreur +  
Attention : dans les paramètres les noms de répertoire ne doivent pas contenir d'espace ou être saisis entre "" (ex : "C:\mes documents" )


Message édité par JPA le 06-05-2003 à 10:43:11
n°383962
Cherrytree
cn=?
Posté le 06-05-2003 à 10:47:59  profilanswer
 

vimaster a écrit :


 
 
si seulement tu travaillais pas sur un OS aussi Minable :-D
 
sous unix ou mieux encore sous linux pour utiliser du soft libre et qui plus est gratuit, c'est d'uns simplicité effrayante...
 
mais kro$oft c'est pas possible de faire ça en batch en effet leur shell (DOS) n'est pas assez souple d'une part, ni complet d'autre part. :fou:  


Troll minable spotted.


---------------
Le site de ma maman
n°384169
Lorogima
Posté le 06-05-2003 à 12:46:31  profilanswer
 

Merci pour les réponses. La création des fichiers source.bat et destination.bat m'est très utile (et c'est con que je n'ai pas pensé à un truc aussi simple...)
 
Pour ce qui est du shell Unix (ou Linux), je sais qu'on peut le faire rapidement mais je n'ai pas envie de l'installer sur le PC que j'utilise régulièrement. Je continuerai en effet à utiliser Windows tant qu'il n'y aura pas plus de produits (applications, drivers, jeux, ...) développés pour Linux.
Et je n'ai pas envie d'installer Linux de base et Windows par-dessus, c'est un brol à monter à chaque formatage du PC ;)

n°384316
JPA
Posté le 06-05-2003 à 14:03:56  profilanswer
 

C'est pas si simple que celà, et je n'ai ce genre de réflexe que depuis que j'ai une bonne expérience des fichiers batch.
 
je te conseille ce site anglais, il y a plein d'exemples super astucieux.
http://www.robvanderwoude.com/index.html
 
En ce qui concerne Linux, tu peux te contenter de cygwin qui te permet d'exécuter des programmes shell Unix sur du Windows. Mais dans ton cas, ce serait lourd, car il te faudrait l'installer sur toutes les machines où ton script va s'exécuter.
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Fichier initialisation ?

 

Sujets relatifs
[JAVA] Ecrire a la fin d'un fichier[PHP] Rechercher dans un fichier .doc
[C] j'ai un probleme pour écrire dans un fichierecrire et lire dans un fichier en visual basic 6 ?
Enregistrer une extension de fichier auprès de Microsoft ?Ajouter une chaine au début d'un fichier
Fichier Batch : comment insérer des balises ? [Pb résolu][PHP] Editer le fichier htpasswd
taille d'un fichier distant 
Plus de sujets relatifs à : [BATCH] Fichier initialisation ?


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