Utilisation Ms-Dos , Remplir un fichier .sql

Résolu
Bonjour,
je suis entrain de créer un programme Batch (.bat) qui permet par exemple de trouver tous les fichiers d'une même extension et de les intégrer dans un premier temps dans un fichier .sql puis ce programme créer une base de donnée comportant les informations.

Mon problème :
- Je souhaiterais que quand j'exécute un dir /b *.avi >> Test.sql par exemple, qu'il me crée un fichier avec INSERT INTO `Les films` ( La liste des variable) VALUES ( le nom du film , la taille ...);

Avec le nom et la taille correct, je vient de passer 3h sur ce probleme que j'arrive pas a résoudre.

-Dans un second temps , je souhaiterais que ce même fichier Test.sql soit directement dans un dossier que j'ai choisi , comment faire ?

Merci a tous , vous pouvez me mailer à Davletuner arobase hotmail point com

J'ai mis l'adresse hotmail comme sa pour eviter les bots spammer ;)
Configuration: Windows Vista Internet Explorer 7.0

29 réponses

Résumé de la discussion

Problème central : script batch doit lister les fichiers d'une extension et générer des instructions SQL INSERT INTO pour fichier, en incluant le nom et la taille, puis écrire Test.sql dans un dossier choisi. Plusieurs contributions soulignent que le résultat direct de dir n'est pas aisément exploitable et proposent d'utiliser for /f avec tokens et usebackq, en ajustant l'échappement et les pourcentages. D'autres précisent la manipulation pratique : rediriger vers le chemin désiré, gérer les tailles en retirant les séparateurs et ne conserver que les fichiers pertinents. Une nuance utile est que certains échanges notent que dir peut aussi renvoyer des totaux et des compteurs, et que l'approche for /f dans un contexte récursif donne des sorties SQL plus propres.

Bobot (l’IA à votre service)
  1. Arf biensur , dans un cmd sa marche mais pas das mon programme xD
    1. Il reste toujours sur C

      sa vient peut etre de vista , je vais tester sur xp
      1. Je parle via un cd
        exemple je suis dans C:\
        je fait cd D:\ , marche pas
        1. Contributeur
          il faut mettre la lettre devant le chemin, par ex.
          D:\dossier\musique\*.avi
          1. Ah , aussi , comment doit je faire si l'utilisateur veut changer de disque , par exemple , il est dans C: et il veut faire la liste des films dans D:
            1. Oui je l'avait déja fait le * dans le for ;)

              Oui , merci de l'info pour le chemin actuel ;)
              1. Contributeur
                pour
                if %chemin%. == . set chemin=
                tu peux utiliser la variable %CD% qui représente le chemin actuel, donc .
                1. Oui je l'avait modifier dans mon programme déja ;)

                  Merci encore a vous :)
                  1. Voila mon programme marche bien now , ma derniere erreur étit un retour a la ligne qui faisait planter le programme :)

                    Merci a vous tous :)
                    1. Contributeur
                      regarde mon post 15
                  2. Contributeur
                    dans ton script, je changerais
                    for /f "usebackq tokens=1,3-4"
                    par
                    for /f "usebackq tokens=1,3,*"
                    car si il y a un espace dans le nom du fichier, 4 ne représente que le debut du nom
                    1. اريد بروقرام
                      Bonjour, En train d'éssayer de passer à Linux pour faire le développement php que je faisais sous Win XP, j'ai installé XAMPP. Tout a l'air d'aller, sauf l'import de tables sous PhpMyAdmin à partir de fichiers .sql générés par la fonction export d'une... www.commentcamarche.net/forum/affich-6833436-phpmyadmin-pb-import-fichier-sql
                      Forum
                      1. Oui , je vient de voir sa .

                        Je vais tester , je vous tient au courant ;)
                        1. Contributeur
                          dans un .bat il faut utiliser double %
                          help for
                          Pour utiliser la commande FOR dans un programme de commandes, spécifiez
                          %%variable au lieu de %variable. Les noms de variables respectent la
                          casse, donc %i est différent de %I.
                          1. Je vient de tester en cela marche niquel :)
                            Merci dubcek.

                            Maintenant le probleme c'est que mon .bat ne l'execute pas.

                            Explication :
                            - L'utilisateur entre le chemin ou rechercher les films ou autres

                            ECHO Veillez donner le chemin que vous voulez et l'extension du(des) fichier(s)
                            set /p chemin= Chemin :
                            if %chemin%. == . set chemin=C:\Users\David\Downloads rem Donnée par defaut
                            set /p ext=Extension :
                            if %ext%. == . set ext=avi rem Donnée par defaut
                            set /p nom=Nom du fichier a cr‚er :
                            if %nom%. == . set nom=Films rem Donnée par defaut

                            cd %chemin%

                            for /f "usebackq tokens=1,3-4" %i in (`dir /-C /s *.avi ^|find /i ".AVI"`)
                            do echo insert into `table`( id, nom, date, taille,type) values('','%k', '%i', '%j','Films'); >> "C:\Users\David\Desktop\Projet Archivage\%nom%.sql"

                            pause


                            Dès qu'il execute il ferme le programme , je vais regarder les info du for
                            1. Contributeur
                              hello
                              essaye avec ^|
                              for /f "usebackq tokens=1,3-4" %i in (`dir /-C /s *.avi^|find /i ".AVI"`
                              • 1
                              • 2

                              Discussions similaires

                              question pix mot caché

                              7 réponses