2 bestanden gelijktijdig kopieren met batch-file

Status
Niet open voor verdere reacties.

afarensis

Verenigingslid
Lid geworden
12 jul 2011
Berichten
586
Besturingssysteem
Windows 11
Office versie
365
Ik wil twee bestanden gelijktijdig kopiëren. Ik weet dat dit apart kan, maar fraaier is het om dit in een opdracht te doen.
Het ene bestand heet 'vrije dagen piet' en het andere 'vrije dagen jan'

Ik kon mij vaag herinneren dat je dat op de volgende wijze met een asterix kon doen, maar dat werkt dus niet (ook niet met een spatie). Heb ook nog gezocht, maar kon niets vinden.
ECHO Y | XCOPY "D:\Data\Documenten\vrije dagen*.docx" "F:\OneDrive\Documenten"
Voor de duidelijkheid: bestanden staan dus niet in één specifieke map, want dan was zou het het met *.* kunnen.

Ik hoop dat iemand mij hierbij kan helpen.
 
Code:
cls
H:
cd H:\Data\Documenten\
copy "Vrije dagen ????.docx" H:\OneDrive\Documenten\
 
Bedankt voor je reactie...
Ik had misschien even moeten zeggen dat mijn kennis van batch-files zeer beperkt is.

Ok, cls = Clearscreen

Maar Change Directory naar H:? Bedoel je, zoals in mijn voorbeeld F:?

En waarom vrije dagen tussen quotes en H:\Ondrive\Documenten niet?
copy "Vrije dagen ????.docx" H:\OneDrive\Documenten\

en die vraagtekens? Sorry, maar zou je het nog een keer in 'Jip en Janneke taal' uit willen leggen?

Als ik het uitvoer (met H: dus) dan krijg ik de melding: 'systeem kan het opgegeven pad niet vinden'

Als je het teveel gedoe vindt om uit te leggen, dan maak ik er maar twee regels van..
 
Dus met andere woorden jij bewaart niets. Volgens mij heb ik je toch vaker geholpen met batch files. Wat je dan kunt doen is even de topic opslaan (Bestand/linksboven > Opslaan als etc.)!
Of heb je een slecht geheugen. Niet erg hoor, maar dan is het juist belangrijk dat je topics opslaat.

Uitleg
cls is clearscreen
cd = change directory
cd\ = naar root
cd map1 = ga naar map1
C: is ga naar schijf/station C

Natuurlijk moet je jouw pad/path invullen. Dus jouw station/schijfletters zijn D en F. Echter, ik test wat ik schrijf maar nooit op mijn C schijf e.d.
Met quotes ondervang je spaties in map en bestandsnamen.

Bij jou zou dan moeten werken:

Code:
cls
cd\
D:
cd D:\Data\Documenten\
copy "Vrije dagen ????.docx" "F:\OneDrive\Documenten\"

Volgens mij is Xcopy in dit geval niet geschikt omdat het om losse files gaat.
 
Laatst bewerkt:
Je hebt mij inderdaad een keer geholpen met batch files en ik heb de info ook, naast een aantal andere artikelen, bewaard, dus het heeft niet veel met een slecht geheugen te maken. Maar dat was een ander onderwerp.

Ik kom nog uit de tijd van het handmatig bewerken van config.sys en autoexec.bat, dus jouw uitleg van de opdrachten waren mij bekend.

Ik zie wel dat je nu quotes hebt gezet bij F:\Ondrive\Documenten, was voor mij verwarrend..

Echter hiermee zijn de onderstaande vragen nog niet duidelijk:

Die vraagtekens? Sorry, maar zou je het nog een keer in 'Jip en Janneke taal' uit willen leggen?

Als ik het uitvoer (met H: dus) dan krijg ik de melding: 'systeem kan het opgegeven bestand niet vinden' [/I]

Maar... ik wil je er verder niet mee belasten en stel voor om het hierbij maar te laten. Ik maak er gewoon twee regels van en klaar....

Dank voor je hulp.....
 
Laatst bewerkt:
H:\Ondrive\Documenten Staan er in de mapnamen spaties dan? Nee. Dus werkt zonder quotes. Maar goed, je kunt ze ook wel gebruiken. (kwestie van gewoonte).

Waarom soms wel een \ achter de laatste mapnaam omdat DOS dan niet goed weet of het een map of een bestand is.
Zonder krijg je een vraag, is het een map of bestand. Staat er een \ is het duidelijk dat het om een map gaat.

Als ik het uitvoer (met H: dus) dan krijg ik de melding: 'systeem kan het opgegeven pad niet vinden'
Die H is mijn locatie/station voor het testen. Je moet altijd oppassen bij het testen dat er geen blunders inzitten. Gaat iets fout op de C schijf dan heb je grote problemen. Dus H is bij mij een USB-stick voor het uitvoeren van experimenten. Testen van batch files.

Jij moet in jouw opdrachtregels jouw locaties invullen.

? is een vervanging van tekens. In jouw geval vervanging van jan en piet dat zijn er maximaal vier. Met * zie ik geen mogelijkheid om te werken.
 
Laatst bewerkt:
Sorry,

Had even de laatste regel:
Volgens mij is Xcopy in dit geval niet geschikt omdat het om losse files gaat.
niet gelezen.

Dus het kan gewoon niet!
 
Reactie op bericht van 16.08

Jan en Piet waren fake namen. De echte namen zijn resp. 3 en 6 karakters. Begrijp dit niet; ik heb nog maar even getest met 6 x ?, maar het lijkt mij eerlijk gezegd niet logisch; wordt dan de kortere naam wel begrepen? Ik weet nog uit de DOS-tijd dat er wel iets met vraagtekens was, maar dat werkt kennelijk niet met xcopy

Maar wat je zelf al zegt:
Volgens mij is Xcopy in dit geval niet geschikt omdat het om losse files gaat.

Het lijkt dus gewoon niet te kunnen met 2 of meerdere files. Alleen met alle files in een map, dus *.*, zo lijkt het.
 
Met copy kan het gewoon uitgevoerd worden. Jij moet alleen je letters aanpassen/veranderen zoals in post 1 staat.

Heb je deze getest?
Code:
cls
cd\
D:
cd D:\Data\Documenten\
copy "Vrije dagen ????.docx" "F:\OneDrive\Documenten\"

"maar het lijkt mij eerlijk gezegd niet logisch; wordt dan de kortere naam wel begrepen?" Dat heb ik getest en die geringer in aantal worden gewoon meegenomen. Vul het maximaal aantal letters maar in. Ik heb Klaas erbij gezet en 5 vraagtekens, geen probleem.

Met xcopy werkt die wel met Vrije dagen *.docx maar dan pakt die altijd alles wat achter vrije dagen staat maakt niet uit wat daar dan staat.

Probeer maar:
Code:
xcopy "D:\Data\Documenten\Vrije dagen *.docx" "F:\OneDrive\Documenten\"

Vreemd, want dat had je zelf bijna ook in post 1.
 
Laatst bewerkt:
Helaas.. Er lijkt toch iets niet goed te gaan met de vraagtekens....
Ik vraag mij ook af of deze opdrachten in mijn situatie wel nodig zijn:
cls
cd\
D:
cd D:\Data\Documenten

Andere opdrachten in dezelfde batch-file zien er zo uit en werken prima!
@echo off
ECHO Start van backup-procedure...
ECHO.
ECHO bestand wordt naar map 'Voorlaatste' gekopieerd
ECHO Y | XCOPY "D:\Data\Backups van Easy Works\BCK_atlew_excluservice" "D:\Data\Backups van Easy Works\Voorlaatste"
ECHO.
ECHO bestand wordt vanaf station C: naar station D: gekopieerd
ECHO Y | XCOPY "C:\ewbackup\BCK_atlew_excluservice" "D:\Data\Backups van Easy Works"
ECHO.
ECHO bestand wordt naar OneDrive (cloud) gekopieerd
ECHO Y | XCOPY "D:\Data\Backups van Easy Works\BCK_atlew_excluservice" "F:\OneDrive\Backups van Easy Works"
ECHO.
 
Dus dit is het geworden, dus met 6 vraagtekens (Martijn).
cls
cd\
D:
cd D:\Data\Documenten
copy "vrije dagen ??????.docx" "F:Onedrive\Documenten"
 
Ik vraag mij ook af of deze opdrachten in mijn situatie wel nodig zijn:

Ik geef voorbeelden. Of iets wel of niet nodig is, beoordeel je zelf. Alles wat ik aan voorbeelden geef is getest, want ik wil niet dat mensen grote risico's lopen bij de uitvoering. Daar heb ik ook nog eens uitleg over gegeven.
 
Nou zeg.....
In post 1 staat:
ECHO Y | XCOPY "D:\Data\Documenten\vrije dagen*.docx" "F:\OneDrive\Documenten"
Maar moest zijn:
ECHO Y | XCOPY "D:\Data\Documenten\vrije dagen *.docx" "F:\OneDrive\Documenten"
Dus ik was er zelf op een heertje (spatie) na. Dat had een hoop getik en tijd kunnen besparen :)
Maar het werkt nu!! MOOI. Op een of andere manier had ik toch ergens een (tik)foutje gemaakt.
Dankzij jouw pogingen is het gelukt. Sorry voor de verwarrende antwoorden :-(

Nogmaals dank en groet..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan