Forum Clubic

Probleme Fichier bat

Bonjour, je travaille dans un cabinet comptable et pour chaque client qui entre dans le cabinet nous creons un repertoire avec plusieurs dossiers (27). Nous voudrions automatiser cette tache.
C’est pourquoi j’ai crèé un fichier .bat qui permet de créer ces dossiers en un double clique, le voila (voir en dessous pour les problemes):

MD "NOM DOSSIER"
CD NOM DOSSIER
MD "NOM 0000"un
MD "NOM aP1_Editions"
MD "NOM aP2_Generalites"
MD "NOM aP3_Comptabilite"
MD "NOM aP4_Sage"
MD "NOM aP5_Fiscal"
MD "NOM aP6_Juridique"
MD "NOM aP7_Social"
CD NOM aP3_Comptabilite
MD "NOM Emprunts leasings locations"
MD "NOM Immobilisations"
MD "NOM Comptes annuels"
CD …
CD NOM aP5_Fiscal
MD "NOM IRPP"
MD "NOM Liasses fiscales et declarations"
MD "NOM Contribution sociale solidarite"
MD "NOM Divers"
MD "NOM Impot societe"
MD "NOM Taxe apprentissage Formation"
MD "NOM Taxe professionnelle"
CD …
CD NOM aP6_Juridique
MD "NOM Contrats"
MD "NOM Permanent"
MD "NOM PV CONSEILS ADMINIST. & ASSEMBLEES"
CD …
CD NOM aP7_Social
MD "NOM NON SALARIES"
MD "NOM SALARIES"
CD NOM SALARIES
MD "NOM Contrat Travail"
CD …
CD …
CD NOM 0000
MD "NOM 0000 Correspondances"
MD "NOM 0000 Social"
MD "NOM 0000 Travaux"

Mais comme vous pouvez le voir, il y’a 3 champs variables :
- NOM DOSSIER = Nom du client
- NOM = Nom abrégé du client
- 0000 = année de l’exercice en cours

Donc j’aimerais si c’est possible, que quand on lance le fichier .bat, il demande les 3 données variables et modifie en consequence les noms des dossiers.
Voila Tout, si quelqu’un peut m’aider ça serais sympa.

Desolé pour ce poste additionel, mais si ce que je veux n’est pas possible, connaissez-vous une autre methode pour créer rapidement ces dossiers avec les criteres voulues ???

C’est en fait assez simple dans ton batch tu remplace
NOM DOSSIER par %1
NOM par %2
0000 par %3

et tu appel ta commande par
Commande "Nom complet du client" NomAbregé Exercice

Merci de ta reponse, mais tu va peut etre me prendre pour un idiot car je ne vois pas ce que tu veux dire par :
"appel ta commande par
Commande "Nom complet du client" NomAbregé Exercice"
Si tu pouvais etre plus clair (faut pas oublier que je suis comptable).
Je te remercie par avance.

Je crois que darkryss te conseille d’utiliser des paramètres pour ton bash.

Voici un bash (qui se nomme script.bat) que je viens de faire (pour te montrer)


echo "Je vais créer des dossiers à partir de cet ID: '%1'
echo " Dossier1_(+ID), Dossier2_(+ID), Dossier3_(+ID)"
mkdir Dossier1_%1
mkdir Dossier2_%1
mkdir Dossier3_%1

Et voici la commande que je vais lancer (en étant dans le rep. de script.bat)


C:\Documents and Settings\Anonyme\Bureau\DossierDuScripte>script.bat Patient1

Ce script va me créer trois dossiers (Dossier1_ Dossier2_ et Dossier3_ en appondant le nom du patient passé en paramètre).

Tu l’auras compris: le paramètre que je passe je le récupère dans le script en utilisant “%1” (%0 étant le nom du script, %1 le premier argument, %2 le deuxième etc…)

Sinon à la base, si tu es sous XP :
set /p VAR=Entrez une valeur ?
echo %VAR%

Merci pour vos reponse a tous, j’ai opté pour la solution de nglechau qui marche tres bien et est plus simple pour tous les collaborateurs.

J’ai encore un petit probleme, je vous explique, chaque année nous rajoutons dans l’arborescence de chaque client quelques dossiers, donc j’ai fais un petit batch :

@echo off
set /p VAR1=Nom abrege du client
set /p VAR2=exercice
MD "%var1% %var2%"
cd %var1% %var2
MD "%var1% %var2% Correspondances"
MD "%var1% %var2% Social"
MD "%var1% %var2% Travaux"

Mais je voudrais rajouté une variable pour que la bat verifie le nom du dossier et ne créè les dossiers que si le dossier principal du client existe deja.
J’ai penser a utiliser la commande findstr (avec une 3eme variable qui est demandée) pour verifier si le dossier client existe mais je ne sais comment procéder ensuite.

UP
En clair ça donne ça:

@ECHO OFF
COLOR 70
SET /p VAR1=Nom du dossier client:
SET /p VAR2=Nom abrege du client:
SET /p VAR3=Annee d’exercice:
S:
CD %var1%
MD “%var2% %var3%”
CD %var2% %var3%
MD “%var2% %var3% Correspondances”
MD “%var2% %var3% Social”
MD “%var2% %var3% Travaux”

Mais si le dossier n’existe pas les fichiers seront crèé dans s: alors que je veux qu’il ne soit pas crèé du tout et qu’un message avertisse que le dossier client renseigné n’est pas correct

Pour vérifier l’existence d’un dossier :

if existe mon_dossier\nul (echo Dossier existant) else (echo Dossier inexistant)