Toon posts:

[CMD] Batch script

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

ik heb een scriptje gemaakt om mijn mysql database te dumpen naar een bestand, deze wil ik vervolgens kopieren naar de backup map, deze maakt hij automatische per datum aan, hier kom ik echter niet uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
echo on
cls
@echo off
echo MYSQL BACKUP

set Datum = date \t

F:
cd wamp
cd mysql
cd bin
mysqldump --user root website > website.dump

@echo off
date /t > %temp%\tijdel.txt
set /p dt= < %temp%\tijdel.txt
del %temp%\tijdel.txt

cd..
cd..
cd..
md "%dt%"

cd..
cd wamp
cd mysql
cd bin

copy website.dump F:\%dt%\
echo DUMP VOLTOOID


De dump maken werkt, het aanmaken van de map werkt ook.
ik kan alleen met copy het gemaakte dump bestand niet verplaatsen naar die map.

kan iemand me helpen?
alvast bedankt!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Waarom kan het niet? Waarschijnlijk maakt regel 12 (mysqldump) het dumb-bestand in de huidige directory aan.

Ga eerst zelf even na waar het bestand neergezet wordt, en probeer het bestand handmatig met de commandline te kopiëren.

"Kan niet verplaatsen" is namelijk geen foutmelding ;)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Verwijderd

Topicstarter
CodeCaster bedankt voor je reactie
Ja natuurlijk maakt de mysqldump de dump aan in de huidige map, als je naar mn code had gekeken had je dat ook gezien.
Ik zit alleen met het probleem dat het verplaatsen van het bestand niet werkt. Ik denk dat het zit in %dt%. ik weet alleen niet hoe ik het moet oplossen.
Het lijkt erop dat %dt% een spatie teveel maakt, waardoor de waarde wordt: F:\vr 19-03-2006 \

  • Krypt
  • Registratie: April 2000
  • Laatst online: 12-02 20:18
Dan zet je dat ook tussen quotes:
copy website.dump "F:\%dt%\"

edit:
Je directory bevat niet een spatie teveel aan het eind, maar je batch knalt eruit dat ie de directory niet kan vinden door uberhaupt de spatie. Het geheel tussen quotes hangen en het moet werken.

[ Voor 62% gewijzigd door Krypt op 16-03-2007 16:59 ]

Pvouput live


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Euh.
C:\>copy test.txt %dt%
The syntax of the command is incorrect.

Copy lijkt geen procent-tekens te pakken. Edit: en met quotes inderdaad wel :)

[ Voor 12% gewijzigd door CodeCaster op 16-03-2007 17:02 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • KatirZan
  • Registratie: September 2001
  • Laatst online: 04-03 10:32

KatirZan

Wandelende orgaanzak

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
echo on
cls
@echo off
echo MYSQL BACKUP

set Datum = date \t

F:
cd \wamp\mysql\bin
mysqldump --user root website > website.dump

@echo off
date /t > %temp%\tijdel.txt
set /p dt= < %temp%\tijdel.txt
del %temp%\tijdel.txt

cd\
md "%dt%"

cd \wamp\mysql\bin

copy website.dump "F:\%dt%\"
echo DUMP VOLTOOID


Hou overzicht in je batch-bestand ;) zoals hierboven dus aangegeven ;)

Wabbawabbawabbawabba


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Dan mogen regel 6 en 12 ook weg ;)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Krypt
  • Registratie: April 2000
  • Laatst online: 12-02 20:18
Zat hetzelfde te denken; kan nog kleiner.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
cls
echo MYSQL BACKUP

date /t > %temp%\tijdel.txt
set /p dt= < %temp%\tijdel.txt
del %temp%\tijdel.txt

md "F:\%dt%"

F:
cd\wamp\mysql\bin
mysqldump --user root website > "F:\%dt%\website.dump"

echo DUMP VOLTOOID


Waarom folderhoppen met CD als het ook direct kan.

Pvouput live


  • KatirZan
  • Registratie: September 2001
  • Laatst online: 04-03 10:32

KatirZan

Wandelende orgaanzak

juistem :) alweer een tijdje terug sinds ik batch bestanden gebruikt heb voor dit soort "werk"

Wabbawabbawabbawabba


  • Krypt
  • Registratie: April 2000
  • Laatst online: 12-02 20:18
En ik vraag af op welk OS dit is. Als dit op de NT CMD werkt (NT/2000/XP/2003) dan heb je die SET manier helemaal niet meer nodig.

code:
1
2
3
4
5
6
7
8
9
10
11
@echo off
cls
echo MYSQL BACKUP

md "F:\%DATE%"

F:
cd\wamp\mysql\bin
mysqldump --user root website > "F:\%DATE%\website.dump"

echo DUMP VOLTOOID

Pvouput live


Verwijderd

Krypt schreef op vrijdag 16 maart 2007 @ 17:08:
En ik vraag af op welk OS dit is. Als dit op de NT CMD werkt (NT/2000/XP/2003) dan heb je die SET manier helemaal niet meer nodig.

code:
1
2
3
4
5
6
7
8
9
10
11
@echo off
cls
echo MYSQL BACKUP

md "F:\%DATE%"

F:
cd\wamp\mysql\bin
mysqldump --user root website > "F:\%DATE%\website.dump"

echo DUMP VOLTOOID
je hoeft zelfs helemaal niet cd te gebruiken
@echo off
cls
echo MYSQL BACKUP

md "F:\%DATE%"
f:\wamp\mysql\bin\mysqldump --user root website > "F:\%DATE%\website.dump"

echo DUMP VOLTOOID
dit loopt natuurlijk wel fout als de datum net verandert tussen het md & dump commando, in dat geval is een omgevingsvariabele gebruiken veiliger.

Verwijderd

Topicstarter
Het os is windows xp prof en Windows Small business server 2003 R2

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

oh, en
code:
1
%date%
is ook nog eens taal-afhankelijk ;)
Dit script is niet hufterproof hoor :P
http://www.robvanderwoude.com/datetime.html#Prompt

[ Voor 30% gewijzigd door alt-92 op 16-03-2007 20:17 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
Iedereen bedankt voor het oplossen

het script was inderdaad in het begin lang, dit is nu perfect opgelost door jullie.
en de fout die ik kreeg was inderdaad te omzeilen door "" te gebruiken.
Pagina: 1