IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Copier le fichier .bat courant vers un répertoire et supprimer une ligne [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut Copier le fichier .bat courant vers un répertoire et supprimer une ligne
    Bonjour,

    J'ai une problématique que je n'arrive pas à solutionner... Mon problème est le suivant : j'ai un ".bat", que j'exécute une fois, il inscrit une clé dans la base de registre, puis je dois le déplacer/copier dans un dossier, tout en supprimant la ligne d'inscription au registre (il ne doit le faire qu'une fois, en revanche le script contient d'autres instructions à appliquer à chaque démarrage de la machine).

    Deux options en fonction de vos propositions :

    1) Soit je le déplace/copie dans le répertoire donné. Et supprime les lignes d'ajout au registre (possible ?)

    2) Soit j'utilise le premier script pour en "écrire" automatiquement un nouveau (je ne sais pas si c'est possible, mais cela permettrait de n'écrire que ce dont j'ai besoin) à l'endroit où je souhaite qu'il soit.

    Mon soucis, c'est qu'xcopy et copy, demandent chacune de connaitre le chemin de départ de mon ".bat", or, il peut se trouver n'importe où sur l'ordinateur et doit être adaptatif.

    Comment faire pour que le ".bat" ait "connaissance" de sa localisation (pour répondre à la solution 1) ) ?
    Ou sinon, comment faire pour "écrire" automatiquement un script à partir du premier ?
    Comment supprimer une ligne du ".bat" après son exécution ?


    Merci par avance

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Vous avez la possibilité de poster votre code et

    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    set "MyBatchfileName=%~nx0"
    set "DossierCourant=%~dp0"
    echo "%MyBatchfileName%" est execute depuis ce dossier : "%DossierCourant%"
    pause

  3. #3
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Hello,

    Pour completer, le path complet de ton BAT peut-êter récuperer grâce au modificateur ~f donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    echo Mon bat est executé dans : %~f0
    Et pour écrier un nouveau BAT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (echo @echo off
    echo for /l ^%^%a in (1,1,10^) do echo ^%^%a
    echo blabla
    echo blabla
    ) > NouveauBat.bat
    Il faut échapper les caractères spéciaux %,&,),<,>,| pour qu'ils ne soient pas intèrepreté par le code actuel.


  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut


    Merci merci pour vos réponses rapides, donc est-ce que je peux faire ceci pour la copie (pas la possibilité de tester avant ce soir... :/) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xcopy %f~0/monBat.bat   C:/MonDossier  /Y

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Ce code va vous aider à comprendre ce que vous voulez faire exactement :
    Pour l'aide de la commande XCopy taper Xcopy /? dans la console pour bien comprendre les paramètres /I /F et /Y

    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @echo off
    Set "MyBatch_File_Name=%~n0"
    Set "MyBatch_File_Name_Ext=%~nx0"
    Set "Working_Folder_path=%~dp0"
    Set "FullPath_MyBatch_File=%~f0"
    echo Le nom de mon batch sans extension est : "%MyBatch_File_Name%"
    pause
    echo Le nom de mon batch avec extension est : "%MyBatch_File_Name_Ext%"
    pause
    echo Mon dossier de travail est : "%Working_Folder_path%"
    pause
    echo Le Chemin complet de mon batch est : "%FullPath_MyBatch_File%"
    pause
    set "Destination=C:\MonDossier" 
    rem If Not Exist "%Destination%" MD "%Destination%"
    xcopy /I /F /Y "%FullPath_MyBatch_File%" "%Destination%\"
    pause

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Par défaut
    EUREKAAA !!!

    Tout est limpide !!!! Merci encore, y'a plus qu'à !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier un fichier excel sous un autre nom en supprimant les formules
    Par Quentin15 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2011, 12h19
  2. copier un fichier de linux vers windows
    Par abssef dans le forum Réseau
    Réponses: 4
    Dernier message: 29/05/2008, 13h10
  3. Réponses: 1
    Dernier message: 24/12/2007, 18h21
  4. [Upload] copier un fichier (lien http) vers mon site
    Par dinver dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2006, 11h21
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo