Dos command meest recente bestand (van 2) behouden?

Status
Niet open voor verdere reacties.

Sasje82

Gebruiker
Lid geworden
19 jan 2005
Berichten
14
Hi allemaal,

Heb data op mijn harde schijf staan, maar die raakt nu vol. Ik heb honderden files waarvan ik 2 versies heb, een oude en een nieuwe (moeilijke boomstructuur, dus lastig!)

Weet iemand een doscommand waarbij ik makkelijk de 'oude' bestanden kan kwijtraken en de nieuwe kan behouden? 't ziet er ongeveer zo uit:

1-a 1-b
2 2
3 3
4 4
5-bestand1 5-bestand1
-bestand2 -bestand2
-bestand...x -bestand...x

bestanden hebben dus dezelfde naam, maar bij bestand 1 is de linker het nieuwste, en bij bestand 2 is de rechter het nieuwste en ik wil ze dus met dezelfde boomstructuur in 1 map hebben..

iemand goeie ideeen?

groetjes, sas
 
Hai,

toevallig heb ik een tijd geleden hetzelfde probleem gehad. Maar dan met oude backups, die moesten verwijderd of verplaatst worden.
Ik heb geen dos command voor je maar wel een vbs script. Deze kun je wel gewoon vanaf command aanroepen (het ziet er moeilijker uit dan dat het is).

de onderstaande code opslaan als een .vbs bestand, bijvoorbeeld CheckOldFile.vbs

Code:
Dim fso, f, f1, fc
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("F:\Backup\MSSQL")
Set fc = f.Files
For Each f1 in fc
If DateDiff("d", f1.DateLastModified, Now) > 1 Then
f1.Move ("F:\Backup\MSSQL\Exclude\")
End If
Next
Set fso = Nothing
Set f = Nothing
Set fc = Nothing 


Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("F:\Backup\MSSQL\Exclude")
Set fc = f.Files
For Each f1 in fc
If DateDiff("d", f1.DateLastModified, Now) > 2 Then
f1.Delete
End If
Next
Set fso = Nothing
Set f = Nothing
Set fc = Nothing


Set f = fso.GetFolder("F:\Backup\MSSQL")
Dit is de map die hij gaat controleren.

If DateDiff("d", f1.DateLastModified, Now) > 1 Then
f1.Move ("F:\Backup\MSSQL\Exclude\")
Als hij meer dan 1 dag oud is, verplaatsen naar F:\ etc..

If DateDiff("d", f1.DateLastModified, Now) > 2 Then
f1.Delete
Als hij meer dan 2 dagen oud is, verwijderen.

Test het eerst even met een paar tekst bestandjes ofzo, het werkt snel en mooi.

Als je nog vragen hebt dan hoor ik het wel.
suc6
 
ah, bedankt voor de snelle reactie!

Zou je dan ook in de regels
If DateDiff("d", f1.DateLastModified, Now) > 1 Then
f1.Move ("C:\documentje")

>1 kunnen vervangen door het bestand waarmee het vergeleken moet worden, zodat je altijd de meest up-to-date versie in C:\documentje krijgt?)

had zelf nog even zitten googlen, en kwam bij replace command uit, maar daar moet je geloof ik bestanden aangeven, en dus niet alle bestanden in een bepaalde map langs laten gaan... (of heb ik het mis?:-) )

groetjes, sas!
 
Hai,

ik heb een beter plan(als je er niet uit komt). Download het programma "BeyondCompare" hier:http://www.scootersoftware.com/download.php

doe vervolgens een folder compare en selecteer de 2 mappen. maak even een backup(just 2 make sure) kies daarna voor "Actions">"Synchronise">"UpdateBoth"

suc6
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan