Batch bestand

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Hallo,

Ik zou graag een Batch bestand maken die ervoor moet zorgen dat hij alles verwijdert wat er in een bepaalde map staat, op een geregeld tijdstip.

Het probleem is nu dat het bestand op een andere partitie staat dan mijn batch file: als ik cd D:\

Neemt hij dit niet aan, ook niet wanneer ik het laat voorafgaan door ECHO OFF. (cd werkt enkel van de huidige partitie: cd F:\enzovoort

Is er hier een omweg voor, of gaat dit gewoon niet?

Grtz
 
Gebruik CD /D ipv. CD

Dus als de batch-file bijv. op C:\batch staat, en je wilt (in de batch-file) naar F:\Weggooien, dan wordt het:
CD /D F:\Weggooien

Succes,

Tijs.
 
Hallo,

Eerst en vooral bedankt voor je snelle reply. Ik geraak nu al op mijn andere partitie maar heb nu opnieuw 2 probleempjes:

ECHO OFF
CD /D I:\Werkplaats

Del *.*


Problemen:
1) Hij delete alleen maar single files, maar geen mappen die in de directory Werkplaats staan
2) Ik moet steeds Y duwen als hij vraagt (are you sure you want to dele all) en enter.
-> Kan dit normaal gezien niet automatisch gaan.

Groetjes
 
Hallo,

Eerst en vooral bedankt voor je snelle reply. Ik geraak nu al op mijn andere partitie maar heb nu opnieuw 2 probleempjes:

ECHO OFF
CD /D I:\Werkplaats

Del *.*


Problemen:
1) Hij delete alleen maar single files, maar geen mappen die in de directory Werkplaats staan
2) Ik moet steeds Y duwen als hij vraagt (are you sure you want to dele all) en enter.
-> Kan dit normaal gezien niet automatisch gaan.

Groetjes


Heb probleem 2 ondertussen al kunnen verhelpen:

ECHO OFF
CD /D I:\Werkplaats
ECHO Y | DEL *.*
 
ECHO OFF
CD /D I:\
ATTRIB -R -S -H WERKPLAATS\*.* /S /D
RD /Q /S WERKPLAATS
MD WERKPLAATS

[Verwijdert eerst de hele map WERKPLAATS met alles eronder, en maakt daarna weer een lege map WERKPLAATS].

Meld maar als WERKPLAATS map moet blijven bestaan tijdens de verwijderactie ipv. achteraf opnieuw aangemaakt.

Succes,

Tijs.
 
Dank je wel, werkt fantastischi :thumb:

Op een iets andere manier, maar het werkt, en dat is wat we nodig hebben. Heel erg bedankt voor je hulp:p

Grtz
 
Ik ben bezig met een nieuw batch bestand, die ervoor moet zorgen dat een aantal files (met 1 bepaalde extensie), op geregelde tijdstippen, ze gaat kopieren in een andere map.

Ik heb gezien dat je met MSDOS een functie hebt dat je files met een bepaalde extensie kan laten verwijderen, maar hebt dat niet gevonden om te kopiëren. Is dit mogelijk en kun je ook uitleggen hoe ik het moet 'programmeren' dat het om de bvb 30 sec. het uitvoert (het kopiëren naar een andere map)?

Groetjes
 
Het standaard aanwezige xcopy commando biedt die mogelijkheden.
Voorbeeld (kopieert bestanden met .txt extensie in en onder I:\WERKPLAATS naar de Y:\BACKUP map):
xcopy I:\WERKPLAATS\*.txt Y:\BACKUP\*.* /S /C /F /H /R /Y

Zodra je script klaar is, kan je Configuratiescherm -> Geplande taken gebruiken voor het op vaste tijden laten uitvoeren van je script.

Kijk of Robocopy iets voor je is, als je met Xcopy niet het resultaat bereikt dat je wilt.
Wat links hierover:
hier
hier
'grafische schil' rond Robocopy (Robocopy Gui = hulpmiddel; niet nodig om robocopy te gebruiken)
download-link voor Robocopy Gui

Succes,

Tijs.
 
Laatst bewerkt:
Robocopy

Is Robocopy een command die kan gebruikt worden in een batch bestand? Als ik dan hetgeen wil bereiken wat ik beschreven had, moet ik dan 1 van deze 2 gebruiken in de command?

/mon:<N>
Monitors the source, and runs again when more than N changes are detected.

/mot:<M>
Monitors source, and runs again in M minutes if changes are detected.

Uiteindelijk moet het dan zoiets worden:

robocopy <Source> <Destination> [<File>[ ...]] /mon:<N>

Houd dit dan in als er iets meer in mijn bestand opgeslagen word/of verwijdert wordt (het aantal bytes vermeerderd/verminderd), dat hij dan automatisch opnieuw de specifieke bestanden zal gaan kopiëren.


Als dit zou lukken, zou dat echt :cool: zijn!!!!
 

Ik had je laatste link niet opgemerkt ivm. de Robocopy GUI. Dit lijkt me veel gemakkelijker om te gebruiken. Het enige wat ik niet vindt is zeggen welke extensies alleen mogen gekopieerd worden. Als je Robocopy als command gebruikt kan je dit aanpassen zoals hier vermeld:

Parameter Description
<Source>
Specifies the path to the source directory.
<Destination>
Specifies the path to the destination directory.
<File>
Specifies the file or files to be copied. You can use wildcard characters (* or ?), if you want. If the File parameter is not specified, *.* is used as the default value.

<Options>
Specifies options to be used with the robocopy command.

Heb je enig idee hoe je dit moet aanpassen in de GUI, of zal ik het gewoon als command moeten gebruiken?

Grtz
 
Laatst bewerkt:
Je kunt in Robocopy Gui (ergens) aangeven dat je er een batch-file van wilt maken. Sla die op, en pas hem aan aan jouw wensen/eisen.
Ik heb altijd Robocopy Gui gebruikt om juist van die batch-files te maken.

Tijs.
 
Ik heb hetvolgende als een batch file uit robocopy gehaald:

robocopy "I:\Programming\PHP - Mysql projects" "I:\Program Files\Apache Software Foundation\Apache2.2\htdocs" /V /NP /MON:1 /MOT:1 /R:10 /W:30

Het enige wat er nu nog moet gespecifieerd worden is dat hij enkel .php files kopieert, maar ik weet niet waar ik het precies moet gaan plaatsen. Voor de rest werkt alles, van zodra er iets aangepast wordt, herkopieert hij het.

Grtz
 
Laatst bewerkt:
Vlgs. mij (test het wel even) zou het volgende het kunnen doen voor je:
robocopy "I:\Programming\PHP - Mysql projects\*.php" "I:\Program Files\Apache Software Foundation\Apache2.2\htdocs" /V /NP /MON:1 /MOT:1 /R:10 /W:30

PS: Ik heb niet nagekeken wat die /V ... /W:30 in dit geval inhouden, maar ik neem aan dat je zelf daar goed naar gekeken hebt (je schrijft dat het verder al goed werkt).

Tijs.
 
Laatst bewerkt:
Vlgs. mij (test het wel even) zou het volgende het kunnen doen voor je:
robocopy "I:\Programming\PHP - Mysql projects\*.php" "I:\Program Files\Apache Software Foundation\Apache2.2\htdocs" /V /NP /MON:1 /MOT:1 /R:10 /W:30

PS: Ik heb niet nagekeken wat die /V ... /W:30 in dit geval inhouden, maar ik neem aan dat je zelf daar goed naar gekeken hebt (je schrijft dat het verder al goed werkt).

Tijs.

Dat had ik gisternacht ook nog geprobeerd (op basis van je vorige post), maar dat lukte niet. Ik heb het uiteindelijk gevonden na een lange tijd zoeken. je file extension moet je gewoon achteraan toevoegen:

robocopy "I:\Programming\PHP - Mysql projects\*.php" "I:\Program Files\Apache Software Foundation\Apache2.2\htdocs" /V /NP /MON:1 /MOT:1 /R:10 /W:30 *.php

In ieder geval, bedankt voor de hulp van de afgelopen dagen ;-)

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