Utilisation Ms-Dos , Remplir un fichier .sql
Résolu
Davletuner
-
Davletuner -
Davletuner -
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 ;)
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 ;)
A voir également:
- Utilisation Ms-Dos , Remplir un fichier .sql
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
29 réponses
Salut,
Pour le premier problème, je ne sais pas, et je n'ai pas trop le temps la, je verrai demain si j'y arrive...
Par contre, pour :
"je souhaiterais que ce même fichier Test.sql soit directement dans un dossier que j'ai choisi , comment faire?"
Essaies ceci :
@+
Pour le premier problème, je ne sais pas, et je n'ai pas trop le temps la, je verrai demain si j'y arrive...
Par contre, pour :
"je souhaiterais que ce même fichier Test.sql soit directement dans un dossier que j'ai choisi , comment faire?"
Essaies ceci :
dir /b *.avi >> "C:\Mon_dossier\Mon_sous_dossier\Test.sql"
@+
Je vient d'essayer , cela marche niquel , je ne sais pas pourquoi je n'ai pas essayer directemnt :)
Merci a toi H4RDW4RE.
Merci a toi H4RDW4RE.
De rien =D
Pour ton premier problème, je n'ai pas trop compris. Tu veut qu'il y ai afficher quoi exactement dans ton fichier SQL ?
Pour ton premier problème, je n'ai pas trop compris. Tu veut qu'il y ai afficher quoi exactement dans ton fichier SQL ?
En faite mon programme crée une base de donnée , et je souhaiterais grace au dir du ms dos de remplir les Insert Into afin de remplir cette même base de donnée.
Sa donnerais environ sa :
INSERT INTO `Films` (`id`, `nom`, `taille`) VALUES(, 'Disco', 630);
Si biensur le Film Disco est sur mon Pc
Sa donnerais environ sa :
INSERT INTO `Films` (`id`, `nom`, `taille`) VALUES(, 'Disco', 630);
Si biensur le Film Disco est sur mon Pc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut
en fait, le résultat de dir n'est pas aisément manipulable : il sera très difficile de construire une requête avec ça.
par contre, on peut très bien imaginer une mini mise en forme grace au for /f avec quelques options bien placées...
genre
avec auparavant l'écriture d'une fonction (je sais pas si c'est possible avec ton moteur) to_nmber() supprimant 0xff (ou je sais plus trop ce qui est utilisé) dans la taille car la taille affiché a des séparateurs de milliers qui rendent la valeur non numérique
plus d'infos : for /?
Amuse-toi bien
en fait, le résultat de dir n'est pas aisément manipulable : il sera très difficile de construire une requête avec ça.
par contre, on peut très bien imaginer une mini mise en forme grace au for /f avec quelques options bien placées...
genre
for /f "usebackq tokens=1,3-4" %i in (`dir *.avi|find /i ".AVI"`) do echo insert into `table`(nom, date, taille) values('%k', '%i', to_number(%j));>>mesrequetes.sql
avec auparavant l'écriture d'une fonction (je sais pas si c'est possible avec ton moteur) to_nmber() supprimant 0xff (ou je sais plus trop ce qui est utilisé) dans la taille car la taille affiché a des séparateurs de milliers qui rendent la valeur non numérique
plus d'infos : for /?
Amuse-toi bien
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.
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.
Ouaaaaa, ça va être tendu...
Mais je vais essayé sa demin (je suis pas sur de trouver), je te redis dans tout les cas où sa en est.
@+
Mais je vais essayé sa demin (je suis pas sur de trouver), je te redis dans tout les cas où sa en est.
@+
Très bien merci a vous deux.
Je testerais demain , pour info le séparateur de millier si est le même que pour le dir il faut faire /-C
Merci encore
Je testerais demain , pour info le séparateur de millier si est le même que pour le dir il faut faire /-C
Merci encore
Alors j'ai tester ton code othanga , mais le problème c'est que le dir va mettre aussi le nombre de fichiers , les octets au total ...
ce qui donne un code tres moche xD :
insert into `table`( id, nom, date, taille) values('','le', 'Le', dans);
insert into `table`( id, nom, date, taille) values('','s‚rie', 'Le', de);
insert into `table`( id, nom, date, taille) values('','', 'R‚pertoire', Mon Dossier);
insert into `table`( id, nom, date, taille) values('','Films1', '30/04/2009', 733413376);
insert into `table`( id, nom, date, taille) values('','octets', '1', 733413376);
insert into `table`( id, nom, date, taille) values('','octets', '0', 224641912832);
insert into `table`( id, nom, date, taille) values('','le', 'Le', dans);
insert into `table`( id, nom, date, taille) values('','s‚rie', 'Le', de);
insert into `table`( id, nom, date, taille) values('','', 'R‚pertoire', Mon dossier);
insert into `table`( id, nom, date, taille) values('','Films1', '30/04/2009', 733413376);
...
Mon Dossier>for /f "usebackq tokens=1,3-4" %i in (`dir /s /-C *.avi`) do echo insert into `table`( id, nom, date, taille) values('','%k', '%i', %j);>> test.sql
Je vais chercher s'il y a pas moyen de recup correctement les données
ce qui donne un code tres moche xD :
insert into `table`( id, nom, date, taille) values('','le', 'Le', dans);
insert into `table`( id, nom, date, taille) values('','s‚rie', 'Le', de);
insert into `table`( id, nom, date, taille) values('','', 'R‚pertoire', Mon Dossier);
insert into `table`( id, nom, date, taille) values('','Films1', '30/04/2009', 733413376);
insert into `table`( id, nom, date, taille) values('','octets', '1', 733413376);
insert into `table`( id, nom, date, taille) values('','octets', '0', 224641912832);
insert into `table`( id, nom, date, taille) values('','le', 'Le', dans);
insert into `table`( id, nom, date, taille) values('','s‚rie', 'Le', de);
insert into `table`( id, nom, date, taille) values('','', 'R‚pertoire', Mon dossier);
insert into `table`( id, nom, date, taille) values('','Films1', '30/04/2009', 733413376);
...
Mon Dossier>for /f "usebackq tokens=1,3-4" %i in (`dir /s /-C *.avi`) do echo insert into `table`( id, nom, date, taille) values('','%k', '%i', %j);>> test.sql
Je vais chercher s'il y a pas moyen de recup correctement les données
En faite le probleme vient du "|" car or syntaxe cela marche niquel , mais des que je l'introduit dans le for , sa me marque qu'il est inatendu
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) values('','%k', '%i', to_number(%j));>> Test.sql
Voici la requete tester
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) values('','%k', '%i', to_number(%j));>> Test.sql
Voici la requete tester
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
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
اريد بروقرام
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
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
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
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
Voila mon programme marche bien now , ma derniere erreur étit un retour a la ligne qui faisait planter le programme :)
Merci a vous tous :)
Merci a vous tous :)
pour
if %chemin%. == . set chemin=
tu peux utiliser la variable %CD% qui représente le chemin actuel, donc .
if %chemin%. == . set chemin=
tu peux utiliser la variable %CD% qui représente le chemin actuel, donc .