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 :

Lancer une commande pour chaque fichier d'un dossier [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut Lancer une commande pour chaque fichier d'un dossier
    Salut à tous,

    Je pensais m'en sortir avec tous les exemples que l'on trouve dans ce forum, mais je me rencontre que je suis largué.

    Pour tous les fichiers nomfichier.txt d'un dossier, j'ai besoin de lancer la commande bcp TestDatabase.dbo._prefixenomfichier format nul -c -x -f D:\dossier\nomfichier.xml -t# -T.

    J'ai bien compris qu'il me faut une petite boucle for, mais c'est après pour jouer avec les variables.

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for /F %%a in ('dir *.txt') do (
        start bcp TestDatabase.dbo._prefixe%%a format nul -c -x -f D:\dossier\ %%a.xml -t# -T
    )
    évidement, on est d'accord, le %%a.xml et le _prefixe%%a ne doivent pas être bon, il me faudrait le nom du fichier sans l'extension

    Pas besoin d'un truc propre, juste un truc qui marche, c'est du one-shot.

    pour l'explication, je réalise un utilitaire pour importer régulièrement un certain nombre de fichiers dans une base sqlserver, les tables sont nommées d'un préfixe et du nom du fichier sans l'extension. Et pour préparer les requêtes d'insertion, je dois d'abords extraire le schéma de la table pour faire la correspondance avec le fichier correspondant. Ça sera fait qu'une fois, ensuite les schémas évolueront à la main en même temps que les tables et les fichiers

  2. #2
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Salut,
    Que donne ceci:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off & cls
    setlocal enabledelayedexpansion
     
    for /f "tokens=*" %%q in ('dir /b /s "*.txt"') do (
        set "filename=%%~nq"
        bcp TestDatabase.dbo._prefixe!filename! format nul -c -x -f D:\dossier\!filename!.xml -t# -T
    )
    pause
    exit

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Citation Envoyé par devilsnake88 Voir le message
    Salut,
    Que donne ceci:
    C'est la solution, même si ça marche à moitié.

    Çà marche à moitié car je me rends compte que le nom des fichiers et le nom des tables ne correspond pas tout à fait, un accent d'un coté et pas de l'autre, un s en plus, un mot écrit en abrégé d'un seul coté, ...
    En y étant toute la journée dedans, on fait naturellement le lien sans se rendre compte que les noms différent légèrement.
    Çà ne concerne qu'un 10ènes de tables, je vais les terminer à la main.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/12/2015, 20h01
  2. Lancer une commande DOS après clic droit sur dossier
    Par Invité(e) dans le forum Windows
    Réponses: 3
    Dernier message: 17/01/2011, 00h27
  3. Réponses: 1
    Dernier message: 15/05/2009, 16h01
  4. [Batch] executer une commande pour chaque fichier d'un répertoire
    Par Louis-Guillaume Morand dans le forum Windows
    Réponses: 4
    Dernier message: 10/12/2007, 18h47
  5. Réponses: 7
    Dernier message: 06/01/2007, 20h16

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