DOS batch-vraagje

Pagina: 1
Acties:
  • 179 views sinds 30-01-2008
  • Reageer

  • eerdepeer
  • Registratie: November 2001
  • Laatst online: 28-04 22:41
ik heb een klein batchje gemaakt om een bestand van schijf c naar d te kopieren. Het is bedoeld voor backup en wil elke dag een nieuw bestand.
1x kopieren kan met copy c:\voorbeeld.txt d:\

Maar mijn probleem is dat het maar 1x gaat. Ik wil steeds een nieuw bestand, dus: 1e keer kopieren: wordt d:\voorbeeld.txt, 2e keer wordt d:\voorbeeld(2).txt, etc.

Maar hoe doe ik dat in een batch file?

Verwijderd

Misschien kan je ipv d:\bestandsnaam.ext iets anders doen, zoals:

copy c:\bestand.* D:\bestand(+datum).*

Ik weet niet of het in dos mogelijk is maar ik denk van wel.
Ik weet dat het in een linux console in ieder geval mogelijk is, ik weet alleen niet of (en hoe) je dit in dos kan doen.

  • Device Manager
  • Registratie: April 2002
  • Laatst online: 07-06-2024

Device Manager

5.9L diesel 4X4 325pk en 826Nm

Ik ken dos-batch files redelijk, maar dacht niet dat dat mogelijk is. Het zou kunnen zijn dat je naar Windows scripting moet kijken. Dit zou volgens Microsoft de 'vervanger' voor batch files e.d. moeten zijn (ik ga ervanuit dat je een moderne versie van Windows draait).

<a href=http://www.tweakers.net/gallery/53099/sys>Mijn systeem</a>


  • silentsnake
  • Registratie: September 2003
  • Laatst online: 04-02 04:29
ummm...van wat ik er van begrijp wil je dus steeds 1 bestand kopieeren naar je andere schijf? In dat geval verwijder je gewoon het oude bestand eerst en kwak je daar de nieuwe in.

code:
1
2
3
4
d:
cd \
del voorbeeld.txt
xcopy c:\voorbeeld.txt d:


wil je wat safer zijn kan je ook dit doen:

code:
1
2
3
4
5
6
d:
cd \
mkdir temp
xcopy c:\voorbeeld.txt d:\temp
del voorbeeld.txt
move d:\voorbeeld.txt d:


Op die manier heb je altijd je oude bestandje nog als er er tijdens het kopieren wat mis gaat en hij geeft een error

  • eerdepeer
  • Registratie: November 2001
  • Laatst online: 28-04 22:41
Het is voor een database en tis dus eigenlijk de bedoeling dat hij de hdd vol maakt net reservekopien. (met een grote schijf kan ik een jaar vooruit, dus dat is geen bottleneck) Maar omdat het om een veelgebruikte database gaat moet ik dus elke dag terug kunnnen kijken als iemand iets heeft veranderd wat niet goed is. Daarom heb ik van elke dag een andere kopie nodig!

  • kzin
  • Registratie: Oktober 2003
  • Laatst online: 29-04 16:57
Wat in een dos batch file vrij eenvoudig is, is aparte directories.
Die kun je aanmaken met mkdir %date%

  • Qwerty-273
  • Registratie: Oktober 2001
  • Laatst online: 29-04 15:05

Qwerty-273

Meukposter

***** ***

eerdepeer schreef op 31 oktober 2003 @ 23:09:
Het is voor een database en tis dus eigenlijk de bedoeling dat hij de hdd vol maakt net reservekopien. (met een grote schijf kan ik een jaar vooruit, dus dat is geen bottleneck) Maar omdat het om een veelgebruikte database gaat moet ik dus elke dag terug kunnnen kijken als iemand iets heeft veranderd wat niet goed is. Daarom heb ik van elke dag een andere kopie nodig!
Ik weet niet welke database je gebruikt. Maar kan je daar geen job aan hangen die elke dag een history weg schrijft?

Maar inderdaad anders zou je naar windows scripting moeten kijken.

Erzsébet Bathory | Strajk Kobiet | You can lose hope in leaders, but never lose hope in the future.


  • mvdejong
  • Registratie: Juni 2000
  • Laatst online: 29-11-2024

mvdejong

When does the hurting stop ?

Kan perfect, als je onder CMD.EXE van een NT-kernel (NT, 2000, XP) werkt, dan heb je standaard extended syntax. Onder echte DOS, 95- en 98-variaties werkt het niet.

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
REM Source-file.
SET SRC=%1

REM Split up the source-path into its components.
SET DRV=%~d1
SET PTH=%~p1
SET NAM=%~n1
SET EXT=%~x1

SET CNT=1

REM If it was never copied before.
SET TRG=D:\%NAM%%EXT%
IF EXIST %TRG% GOTO :COUNT
COPY %SRC% %TRG%
GOTO :END

:COUNT
REM Create a new version.
SET /A CNT=%CNT%+1
SET TRG=D:\%NAM%(%CNT%)%EXT%
IF EXIST %TRG% GOTO :COUNT
COPY %SRC% %TRG%

:END


Ik had onlangs dit soort trucs nodig, en was plezierig verbaasd over deze features.

The number of things that Arthur couldn't believe he was seeing was fairly large


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 08:37
Als je het zonder cmd van Win2K/NT/XP moet doen en dus met win9x/DOS moet werken, kan je altijd nog 4DOS opzoeken, die is echt heel erg uitgebreid.

* _JGC_ heeft een Y2K fix in 4DOS geschreven voor zn 486 destijds :)
Pagina: 1