Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
[Résolu]Modification de fichier SQL.
Auteur Message
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Salut all, je me demandais si quelqu'un pourrait me faire un petit fichier Batch qui permet de réunire les valeurs par id.

Comme je suppose que vous n'avez rien compris, voici un exemple:
Citation:

UPDATE data SET Valeurs='296', AutresValeurs='5,5' WHERE ID='8479'
UPDATE data SET Valeurs='236', AutresValeurs='5,5' WHERE ID='8479'

devient donc:
Citation:

UPDATE data SET Valeurs='296, 236', AutresValeurs='5,5' WHERE ID='8479'




Dernière édition par iLgend le Sam 31 Juil 2010 - 18:22; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Hello,

Je t'ai bricolé ceci, mais je suppose que tu veux aussi rechercher par valeurs d'ID ??
Code:

SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
for /f "tokens=2 delims='" %%A in ('type fichier.txt') do set "STR=!STR!%%A,"
echo UPDATE data SET Valeurs='!STR!' AutresValeurs='5,5' WHERE ID='8479'>autre.txt





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Merci Stryk, et comme tu l'as si bien dit, par id serait parfait. Okay



Répondre en citant
Message [Résolu]Modification de fichier SQL. 
RE,

J'y suis presque, Embarassed , je reposte dès que je trouves la solution ^^
Code:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
for /f "tokens=6 delims='" %%A in ('type fichier.txt') do (
    for /f "tokens=2 delims='" %%B in ('type fichier.txt ^| Find "%%A"') do (
        set "STR=!STR!,%%B"
        call :ADD "%%A"
        )
    )
pause
:ADD
echo UPDATE data SET Valeurs='%STR%', AutresValeurs='5,5' WHERE ID='%~1'>>autre.txt
goto :EOF





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Voilà comme demandé un exemple plus long pour testé. ^^
Code:

UPDATE data SET Valeurs='296', AutreValeurs='5,5' WHERE ID='8479'
UPDATE data SET Valeurs='236', AutreValeurs='5,5' WHERE ID='8479'
UPDATE data SET Valeurs='493', AutreValeurs='5,5' WHERE ID='8479'
UPDATE data SET Valeurs='490', AutreValeurs='5,5' WHERE ID='8479'
UPDATE data SET Valeurs='974', AutreValeurs='5,5' WHERE ID='10295'
UPDATE data SET Valeurs='973', AutreValeurs='5,5' WHERE ID='10295'
UPDATE data SET Valeurs='972', AutreValeurs='5,5' WHERE ID='10295'
UPDATE data SET Valeurs='982', AutreValeurs='5,5' WHERE ID='10295'
UPDATE data SET Valeurs='974', AutreValeurs='5,5' WHERE ID='10297'
UPDATE data SET Valeurs='982', AutreValeurs='5,5' WHERE ID='10297'
UPDATE data SET Valeurs='972', AutreValeurs='5,5' WHERE ID='10297'
UPDATE data SET Valeurs='973', AutreValeurs='5,5' WHERE ID='10297'
UPDATE data SET Valeurs='972', AutreValeurs='5,5' WHERE ID='10301'
UPDATE data SET Valeurs='973', AutreValeurs='5,5' WHERE ID='10301'
UPDATE data SET Valeurs='971', AutreValeurs='5,5' WHERE ID='10301'
UPDATE data SET Valeurs='984', AutreValeurs='5,5' WHERE ID='10301'
UPDATE data SET Valeurs='491', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='492', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='979', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='970', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='980', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='981', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='236', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='490', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='493', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='489', AutreValeurs='5,5' WHERE ID='10312'
UPDATE data SET Valeurs='970', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='979', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='493', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='490', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='491', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='236', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='980', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='981', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='492', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='489', AutreValeurs='5,5' WHERE ID='10313'
UPDATE data SET Valeurs='979', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='970', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='980', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='493', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='492', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='236', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='981', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='489', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='490', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='491', AutreValeurs='5,5' WHERE ID='10310'
UPDATE data SET Valeurs='970', AutreValeurs='5,5' WHERE ID='10309'
UPDATE data SET Valeurs='980', AutreValeurs='5,5' WHERE ID='10309'
UPDATE data SET Valeurs='492', AutreValeurs='5,5' WHERE ID='10309'
UPDATE data SET Valeurs='493', AutreValeurs='5,5' WHERE ID='10309'




Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Ok, cool ... Crying or Very sad ...

Bon, j'avance à tâtons, je poste déja ce que j'ai, je continuerais après une petite nuit de sommeil ^^

Code:

@echo off
title Merci du cadeau iLGend ;) LOL
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS

:: \\ Modifier la valeur de FILE en fonction ... //
set FILE=fichier.txt

for /f "tokens=6 delims='" %%A in ('type %FILE%') do (
    set STR=
    call :INCR "%%A"
    )

pause

:INCR
for /f "tokens=2 delims='" %%A in ('type %FILE% ^| Find "%~1"') do (
    set "STR=!STR!,%%A"
   )
echo UPDATE data SET Valeurs='!STR!', AutresValeurs='5,5' WHERE ID='%~1'>>NEW_%FILE%
goto :EOF





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Je crois que c'est exactement ce que je cherchais, maintenant, je supprime juste les lignes identiques et enlève la première virgule, good job Stryk (j'ai envie de dire comme d'hab). Okay

Edit: voilà ton batch + supprimer les lignes identiques (trouvée sur le topic de JohnCitron :p).

Code:
@echo off
title Merci du cadeau iLGend ;) LOL >> Mais derien ;)
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS

:: \\ Modifier la valeur de FILE en fonction ... //
set FILE=maps_data2.sql

for /f "tokens=6 delims='" %%A in ('type %FILE%') do (
    set STR=
    call :INCR "%%A"
    )
for /f "delims=" %%B in ('type NEW_%FILE%') do (
find /c "%%B" NEW_%FILE%
if errorlevel==1 echo %%B >> NEW_%FILE%
)
pause>nul

:INCR
for /f "tokens=2 delims='" %%A in ('type %FILE% ^| Find "%~1"') do (
    set "STR=!STR!,%%A"
   )
echo UPDATE data SET Valeurs='!STR!', AutresValeurs='5,5' WHERE ID='%~1'>>NEW_%FILE%
goto :EOF




Répondre en citant
Message [Résolu]Modification de fichier SQL. 
J'ai essayé, mais il y a 1/5 des lignes qui ont bug, j'ai aussi changé la synthaxe SQL.

Par exemple, voilà une ligne qui bug:

Citation:
UPDATE maps_data SET Monsters='134,34,134,490,493,491,489,491,236,489,490,493,996,996,996,976,977,974,978,982,975,983,974,978,977,983,975,976,982,975,977,982,976,983,978,974,973,982,974,972,974,975,976,983,982,977,978,134,134,134,134,112,442,447,465,255,998,489,493,236,491,492,490,56,55,57,134,134,134,134,134,134,134,134,134,134,134,34,296,296,296,296,296,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,491,489,134,61,104,59,103,104,103,59,61,61,104,59,103,491,490,493,489,463,236,126,236,491,236,490,489,491,491,236,493,134,134,134,134,34,34,34,34,34,134,34,34,34,34,34,134,98,79,59,78,61,48,46,31,34,34,34,34,134,34,34,34,34,134,134,34,34,34,134,134,34,34,134,34,134,134,134,134,134,134,134,34,134,134,34,34,134,534,2343,134,34,34,134,134,34,134,34,34,134,34,134,34,34,134,34,134,34,134,34,34,134,34,134,34,34,134,134,34,134,134,34,134,34,134,34,34,34,134,134,34,34,134,34,134,34,134,34,34,974,973,982,972,372,1069,1025,1026,1070,1019,34,134,134,34,134,134,34,34,240,194,198,46,59,244,245,31,61,34,134,34,134,134,134,34,134,134,34,34,134,34,134,134,134,134,134,134,134,34,34,34,34,490,492,491,493,236,494,299,301,281,298,34,34,134,134,34,34,134,134,34,34,134,34,34,134,34,134,34,134,34,34,134,134,134,134,134,134,134,34,34,34,34,34,34,98,31,61,46,34,52,794,34,34,34,34,34,34,34,34,34,447,442,259,112,34,34,34,134,134,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,834,134,496,498,495,154,34,134,34,34,241,240,194,198,244,243,47,34,59,245,34,34,34,34,344,343,343,344,343,344,343,344,343,344,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,134,34,34,134,134,344,343,343,344,343,344,343,344,344,343,344,343,344,343,344,343,344,343,344,343,344,343,273,287,275,274,278,276,279,280,287,274,273,276,278,277,275,280,276,273,275,274,287,278,277,279,280,287,274,275,280,273,276,278,277,279,276,274,273,287,278,275,280,277,288,275,274,276,277,273,287,288,274,276,293,273,275,343,344,344,343,343,344,343,344,344,343,343,344,344,343,344,343,344,343,534,534,344,343,343,344,344,343,343,344,275,279,273,274,277,276,287,280,276,274,273,287,275,279,287,288,273,274,276,275,280,344,343,344,343,344,343,343,344,344,343,343,344,344,343,344,343,344,343,344,343,275,274,288,276,273,287,277,279,280,278,275,276,273,280,274,287,278,279,288,344,343,344,343,274,287,276,273,275,280,278,288,287,276,274,275,278,273,275,274,273,287,276,277,280,278,273,276,274,275,280,287,279,34,273,274,276,287,275,278,294,277,279,288,280,134,134,134,134,134,134,34,34,134,34,134,34,134,34,34,134,34,134,134,134,134,34,34,47,134,61,52,104,34,103,159,255,149,101,46,134,34,134,134,34,34,47,103,46,59,61,31,34,52,48,78,79,256,2323,34,34,34,34,34,34,34,34,47,31,78,103,256,52,59,46,48,79,61,34,34,34,34,34,34,134,134,134,34,34,34,34,48,47,59,256,79,61,31,46,78,78,48,79,34,61,47,59,46,103,34,48,79,78,371,59,344,343,343,344,343,344,344,343,343,344,344,343,344,343,344,343,134,34,34,34,34,34,34,34,34,34,34,34,34,134,34,34,34,34,34,34,34,134,134,134,134,34,34,34,134,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,255,159,47,654,254,655,256,652,650,31,52,46,259,34,653,2427,34,34,34,34,34,34,34,34,34,34,34,34,34,275,293,274,279,276,280,273,277,273,293,276,275,274,281,34,34,34,34,34,34,34,34,34,34,34,34,34,134,134,34,34,34,134,34,134,34,34,134,134,134,34,34,34,134,34,34,34,78,103,47,61,59,34,46,31,79,48,52,256,31,78,47,48,79,256,46,34,61,103,34,34,344,343,344,343,343,344,34,34,34,34,76,82,95,90,94,88,89,93,170,91,87,89,91,93,94,90,88,170,371,79,59,48,78,34,34,34,34,34,34,34,34,34,34,34,34,34,253,254,256,653,651,655,654,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,47,34,103,48,59,78,79,31,256,59,47,103,31,78,52,48,34,61,46,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,301,300,298,299,281,34,34,34,1070,1025,1019,1068,1069,1026,1020,1044,1043,1078,1229,1231,209,208,281,118,119,153,34,34,34,34,34,34,134,134,747,748,746,785,34,34,34,34,34,534,534,534,534,534,534,534,520,522,61,530,534,534,534,534,534,534,534,534,534,534,534,524,548,518,534,515,547,520,534,34,34,34,34,52,31,61,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,34,34,34,34,34,34,34,34,134,134,134,34,34,34,372,389,392,385,386,387,391,388,384,303,308,306,346,346,348,346,348,348,346,348,346,348,346,348,273,275,287,280,276,274,134,134,281,274,276,293,275,279,273,293,276,280,277,275,274,279,273,275,293,280,276,273,275,276,274,287,277,279,288,273,275,278,287,276,274,280,279,273,278,276,287,274,275,279,277,275,273,277,274,287,276,343,344,344,343,343,344,344,343,344,343,343,344,343,344,344,343,343,344,348,346,348,346,348,346,512,513,512,513,512,513,559,343,344,293,275,273,276,274,278,274,276,293,275,273,275,273,276,274,293,280,278,343,344,343,344,343,344,343,344,344,343,344,344,343,276,273,275,293,278,274,273,274,276,293,276,275,293,274,273,273,274,293,275,276,293,274,275,273,276,280,293,276,274,273,275,278,293,274,273,275,276,293,2405,273,293,275,276,293,275,278,273,275,273,293,274,276,280,293,274,275,276,274,275,293,279,273,277,276,275,276,293,274,273,279,274,293,276,273,275,293,277,274,276,273,275,276,273,274,287,275,278,279,344,343,343,344,344,343,343,344,344,343,343,344,344,343,274,275,276,288,287,276,274,273,287,278,288,275,274,279,287,275,276,273,273,280,276,278,275,287,288,279,276,274,275,273,280,287,277,279,344,343,344,343,344,344,343,343,344,343,344,344,343,344,344,343,344,344,343,343,344,344,343,344,343,344,343,344,343,344,343,344,343,344,343,344,344,343,343,344,344,343,343,34,296,296,34,34,296,296,34,274,280,276,275,273,277,287,276,274,275,273,287,48,59,371,79,274,273,275,276,275,276,273,274,277,287,275,280,274,276,273,279,274,276,273,275,276,273,280,277,274,287,275,276,274,273,275,279,280,273,274,275,287,276,287,274,288,276,275,273,275,274,273,276,279,287,288,273,276,274,275,280,288,276,288,275,274,273,274,275,276,273,287,277,275,274,273,279,276,274,276,287,275,273,288,34,34,287,273,276,279,274,277,34,34,34,34,34,110,127,54,281,290,124,292,291,281,290,110,127,291,200,171,784,748,786,747,746,747,755,753,754,752,751,2509,1022,1064,1060,1065,1061,1060,1062,1063,2429,761,758,760,759,99,96,68,97,64,65,34,34,442,112,259,447,34,88,95,93,75,170,76,94,87,76,88,170,93,89,87,95,82,2343,34,34,34,34,34,34,34', MaximumMonster='5', MaximumGroup='5' WHERE ID='34';




Dernière édition par iLgend le Lun 5 Juil 2010 - 15:53; édité 1 fois
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
RE, j'ai corrigé ton code ^^

Code:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS

:: \\ Modifier la valeur de FILE en fonction ... //
set FILE=maps_data2.sql

for /f "tokens=6 delims='" %%A in ('type %FILE%') do (
    set STR=
    call :INCR "%%A"
    )
for /f "tokens=*" %%B in ('type $$$') do (
find /c "%%B" NEW_%FILE% >nul
if errorlevel 1 echo %%B >> NEW_%FILE%
)
del $$$
pause

:INCR
for /f "tokens=2 delims='" %%A in ('type %FILE% ^| Find "%~1"') do (
    set "STR=!STR!,%%A"
   )
echo UPDATE data SET Valeurs='!STR!', AutresValeurs='5,5' WHERE ID='%~1'>>$$$
goto :EOF





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
J'ai toujours mon problème du dessus, si tu veux, je veux bien héberger le fichier de 22.584 lignes. ^^'



Répondre en citant
Message [Résolu]Modification de fichier SQL. 
RE,

LOL, non ca va aller, merci ^^

Je veux bien le résultat du code avec ton gros fichier que tu as posté stp !

@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Voilà un petit lien avec l'ancien fichier, le batch et le fichier résultat: http://www.multiupload.com/5WCBON72I0
Bonne chance. ^^'



Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Ok,
j'ai compris le souci ..
il va falloir "baliser" les termes recherchés !

Imagine que tu cherches 580 ... bah 580 est aussi dans 21580 ... c bête ^^
Donc on va ajouter des balises $ por entourer le terme recherché !

Maintenant cherche $580$ .. $21580$ ne sera pas pris en compte ^^ top classe Mr. Green

Essayes juste ça:
Code:

@echo off

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
set FILE=maps_data2.sql

for /f "tokens=1,2,3,4,5,6,* delims='" %%A in ('type %FILE%') do (
    echo %%A'$%%B$'%%C'$%%D$'%%E'$%%F$'>>###
    )
pause





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
Haha,

Test donc moi cette petite concoction ^^

Code:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
set FILE=maps_data2.sql

for /f "tokens=1,2,3,4,5,6,* delims='" %%A in ('type %FILE%') do (
    echo %%A'$%%B$'%%C'$%%D$'%%E'$%%F$'>>###
    )

for /f "tokens=6 delims=$'" %%A in ('type ###') do (
    set STR=
    call :INCR "%%A"
    )
   
for /f "tokens=*" %%B in ('type $$$') do (
    find /c "%%B" NEW_%FILE% >nul
    if errorlevel 1 echo %%B >> NEW_%FILE%
    )

del ###
del $$$

pause

:INCR
for /f "tokens=2 delims='$" %%A in ('type ### ^| Find "$%~1$"') do (
    set "STR=!STR!,%%A"
   )
echo UPDATE maps_data SET Monsters='!STR!', MaximumMonster='5', MaximumGroup='5' WHERE ID='%~1';>>$$$
goto :EOF





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu]Modification de fichier SQL. 
RE,

Alors où en est-on sur ce sujet ?




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message [Résolu]Modification de fichier SQL. 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch