Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Bestanden verplaatsen met batchfile

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heren (&dames),

Ik moet iets doen met bestanden wat nogal veel tijd in beslag neemt.
En ondertussen dat ik me een RSI aan het slepen was, bedacht ik me ineens:
'Volgens mij kan dit met een batchbestandje ook wel...'

Het is eigenlijk heel simpel, ik heb 2 mapjes:
Bestanden (1001*.txt, 1002*.txt, 4063*.txt)
Mapjes (1001, 1002, 4063)
De cijfers lopen van 0001 naar 9999

Nu moet bijvoorbeeld 1001*.txt verplaatst worden naar het mapje 1001
Bestand 4063*.txt verplaatst worden naar het mapje 4063.
Etc...etc...etc...

Ik heb zelf al lopen googlen en een en ander geprobeerd, uiteindelijk kwam ik het volgende uit:
code:
1
2
3
4
5
6
7
8
9
10
@echo off
echo ============================================================================
echo                           TXT naar mapjes verplaatsen       
echo  ============================================================================
move C:\Users\Beheerder\Desktop\Bestanden\4012*.txt C:\Users\Beheerder\Desktop\Mapjes\4012
move C:\Users\Beheerder\Desktop\Bestanden\4013*.txt C:\Users\Beheerder\Desktop\Mapjes\4013
move C:\Users\Beheerder\Desktop\Bestanden\4014*.txt C:\Users\Beheerder\Desktop\Mapjes\4014
move C:\Users\Beheerder\Desktop\Bestanden\4015*.txt C:\Users\Beheerder\Desktop\Mapjes\4015
move C:\Users\Beheerder\Desktop\Bestanden\4016*.txt C:\Users\Beheerder\Desktop\Mapjes\4016
pause


Opzich werkt bovenstaand wel, alleen heb ik 2 vraagjes:
1. De nummers lopen van 0001 naar 9999, moet ik nu 9999 regels gaan maken? of kan dat makkelijker?

2. Kan ik ergens in het begin al aangeven wat pad A en wat pad B is?
Voorbeeld:
%X= C:\Users\Beheerder\Desktop\Bestanden\
%Y= C:\Users\Beheerder\Desktop\Mapjes\

Dan worden die regels in ieder geval wat korter, en kan ik het eventueel sneller aanpassen.


Voor mij is het uren werk, wellicht dat één van jullie mij hiermee kan helpen, voor u misschien 5 minuten, maar mij scheelt het uren, ik ben benieuwd.

Alvast bedankt!

  • Yucko
  • Registratie: Mei 2000
  • Laatst online: 19:05

Yucko

One clown to rule them all !

code:
1
move C:\Users\Beheerder\Desktop\Bestanden\????*.txt C:\Users\Beheerders\Desktop\Mapjes\????\.


Hij kijkt naar de 1e 4 posities van een bestandsnaam om te bepalen in welke map het moet komen. Alles na het 4e symbool maakt niets uit voor de keuze van de map.

Hierdoor wordt het hele gepruts van %X en %Y ook overbodig want je hoeft het commando maar 1x te gebruiken om alles in 1x te verplaatsen

Bestaan de mappen wel al? Want ik weet niet of dit commando goed werkt indien de doelmappen, waar de zut naartoe gekopieerd moet worden, niet bestaan. Ik geef dit advies nl. vanuit mijn oude DOS-ervaring :P

[ Voor 111% gewijzigd door Yucko op 27-12-2009 08:46 ]

 iPhone 15 Pro Max Titanium Black 256GB -  iPad Pro 2018 12.9" Space Gray 64GB -  AirPods Pro 3 -  Watch 5 Space Gray LTE -  TV 4K 128GB -  TV 4 64GB -  Wireless CarPlay


Verwijderd

Topicstarter
JaJoah schreef op zondag 27 december 2009 @ 08:31:
code:
1
move C:\Users\Beheerder\Desktop\Bestanden\????*.txt C:\Users\Beheerders\Desktop\Mapjes\????\.


Hij kijkt naar de 1e 4 posities van een bestandsnaam om te bepalen in welke map het moet komen. Alles na het 4e symbool maakt niets uit voor de keuze van de map.

Hierdoor wordt het hele gepruts van %X en %Y ook overbodig want je hoeft het commando maar 1x te gebruiken om alles in 1x te verplaatsen

Bestaan de mappen wel al? Want ik weet niet of dit commando goed werkt indien de doelmappen, waar de zut naartoe gekopieerd moet worden, niet bestaan. Ik geef dit advies nl. vanuit mijn oude DOS-ervaring :P
Dan krijg ik de melding:

Kan meerdere bestanden niet naar één bestand verplaatsen.
Druk op een toets om door te gaan. . .


Zowel als de mapjes bestaan als niet bestaan

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

alt-92

ye olde farte

Verwijderd schreef op zondag 27 december 2009 @ 08:04:
Heren (&dames),

Ik moet iets doen met bestanden wat nogal veel tijd in beslag neemt.
En ondertussen dat ik me een RSI aan het slepen was, bedacht ik me ineens:
'Volgens mij kan dit met een batchbestandje ook wel...'
[...]
Opzich werkt bovenstaand wel, alleen heb ik 2 vraagjes:
1. De nummers lopen van 0001 naar 9999, moet ik nu 9999 regels gaan maken? of kan dat makkelijker?[
Ga eens op zoek naar FORFILES of gebruik een FOR loop.
2. Kan ik ergens in het begin al aangeven wat pad A en wat pad B is?
Alvast bedankt!
Zet een variabele in.
%DESTfolder% en %sourcefolder% bijvoorbeeld.

Eigenlijk.. gewoon de tips die je ook tegenkomt als je gaat [google=batch script howto] ;)

[ Voor 6% gewijzigd door alt-92 op 27-12-2009 14:34 ]

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


Verwijderd

Een beetje late reactie maar misschien kan ik je nog helpen.

Je kan bestanden geen * geven in de bestandsnaam dus dat heb ik weggelaten.
Ik heb besloten om copy te gebruiken dus moet je na afloop zelf de map waar de bestanden stonden verwijderen (Of als je dit door het script wilt laten doen, dan kan je op regel 8 dit plaatsen: del %ct%.txt)

Dit batch script moet je in de map waar je bestanden staan bestanden plaatsen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
set /a tel=1
goto kopieerloop

:kopieerloop
cls
copy %tel%.txt C:\Users\Beheerder\Desktop\mapjes\%tel%\%tel%.txt
set /a tel=%tel%+1
if %tel%==10000 goto klaar
goto kopieerloop

:klaar
cls
echo.
echo Klaar met kopieeren.
set /p ps= Druk op enter om te beendigen...
exit


Tellen van 1 tot 9999, er staat 10000 maar dat is vanwege de volgorde van controle/optellen.
Na het voltooien krijg je een bericht dat het klaar is.

Ik hoop dat dit je hier nog iets aan hebt gehad.

Mvg,

[ Voor 0% gewijzigd door Dirk op 27-07-2016 23:30 ]