Batch file tbv Copy data

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
281
Mijn map structuur is ( stukje van met tree - Zie bijlage )

S:\####Fotos\NL - bos\screenshots\*.*
S:\####Fotos\NL - SP1 - winter\screenshot\*.*
S:\####Fotos\NL - SP2 - sneeuw\screenshot\*.*
--------------------------------\Screenshots X86\*.*
S:\####Fotos\NL - SP3 - herfst\screenshot2\*.*
S:\####Fotos\ENG - Seizoen1 hema\screenshot\*.*
S:\####Fotos\ENG - SP1 - Win XP Lite\screenshotjes\*.*
ENZ


Ik wil graag alle Screenshot mappen met alle files copieren met naam van de onderliggende map naar me D drive
LETOP alle het gaat dus om alle mappen met de tekst Screensh*****
LETOP er kunnen soms meerder mappen in zitten
bv
Screenshot en Screenshot x86
vandaar dat er gezocht moet worden naar Screensh*****
Het probleem is dat de onderliggen de mappen ook data bevat die ik dus niet mee wil copieren
Zie bijlage (tree uitdraai) dit is ook niet de gehele tree maar geeft een indicatie


Dit zou het resultaat moeten worden

D:\NL - bos\screenshots\*.*
D:\NL - SP1 - winter\screenshot\*.*
D:\NL - SP2 - sneeuw\screenshot\*.*
---------------------------\Screenshots X86\*.*
D:\NL - SP3 - herfst\screenshot2\*.*
D:\ENG - Seizoen1 hema\screenshot\*.*
D:\ENG - SP1 - Win XP Lite\screenshotjes\*.*
Enz

Als iemand hier een script voor heeft zou dat mooi wezen
Maar ik vind het ook wel prettig als ik er want van kan leren
Dus en tip om er zelf verder mee de rommelen vind ik ook wel leuk.



ik zoek dus iets als als ik in de map S:\####Fotos\ staat
Alle map en submap namen uitlees
in mijn voorbeeld dus:
NL - bos = %1
screenshots = %2

dit kan verwerken in een batch file
iets als:

@echo off
chcp 65001 >NUL
for %1%2 in (S:\####Fotos) do (
copy s:\####Fotos\%1\%2\*.* d:\test\%1\%2
)
pause


Maar dan iets dat wel werkt




m.v.g.
Rob


Even een reactie

RogerS
Robocopy bekeken maar dat is voor mijn te moeilijk

Senso
Het gaat om heel veel bestanden.
Er staat ook ENZ onder.

route99
Het is dus niet de bedoeling dat gevonden files in 1 map gaat komen

jackall
De vraag is om het met variabele te doen
dit scheelt een hoop tijd
Bovendien kunnen andere gebruikers dan deze ook weer gebruiken.
 

Bijlagen

  • voorbeeld.txt
    2,6 KB · Weergaven: 62
Laatst bewerkt:
Laat staan dat het iemand volledig duidelijk is, is het volgens mij beter dit handmatig te doen. Voor een batch file/script ben je veel tijd kwijt en dan moet het ook nog eens 100% werken. Zoals RogerS aangeeft met Robocopy waar ik geen ervaring mee heb en ik werk vaak met xcopy. Typ robocopy/?|more of xcopy/?|more en je krijgt uitleg.

Een voorbeeld om een hele map naar een ander locatie te kopiëren met een ander mapnaam:

Code:
Cls
Cd\
E:
xcopy "E:\test\Map 1\Map W\" "E:\test\Map Z\"
 
Laatst bewerkt:
Dit komt imho aardig in de buurt, ff aanpassen qua folder en drive:
https://www.winhelponline.com/blog/move-copy-files-multiple-sub-folders-single-folder/
Er worden in die link ook nog andere methodes besproken.

Method 1: Using Command-line
Scenario: Let’s copy all files from the d:\vacation snaps\2016 folder and sub-folders to the d:\all snaps folder recursively.

Open a Command Prompt window.
Run the following commands, one by one and press ENTER after each line:
Code:
md "d:\all snaps"
cd /d "d:\vacation snaps\2016"
for /r %d in (*) do copy "%d" "d:\all snaps"
This recursively copies all files in the d:\vacation snaps\2016\ folder to the d:\all snaps\ folder. To move the files, replace copy with move

If a file of the same name exists in the destination, you’ll be asked if you want to overwrite or skip the file.

Note: It’s always safe to include the trailing backslash (\) after the destination folder path, as in the above example. Because, without the trailing slash, if the destination path is missing and you run the command, then the files in the folder and subfolders are copied and combined into one single file named all snaps to D:\ drive.
 
*.* betekent alle files.
Als je het sterretje achter de punt vervangt voor de file extensie die je wel wilt kopiëren ben je er volgens mij al.
Betekend wel dat je voor elk bestandstype van de afbeeldingen een aparte commando regel krijgt.

Zou dit zoals eerder geopperd uitvoeren met xcopy, aangezien xcopy de onderliggende mappen kan meenemen.

Het gaat er dan ongeveer zo uitzien(even afgezien van evt typo's :rolleyes: )

Xcopy S:\####Fotos\NL - bos\screenshots\*.bmp D:\NL - bos\screenshots\*.bmp
Enz.
 
Het probleem is dat de onderliggen de mappen ook data bevat die ik dus niet mee wil copieren
Dat moet dus niet en dat gebeurd ook niet. Dat heb ik getest. Ik begrijp ook niet dat het zo moeilijk is. Ik begin altijd met batch files in Word, immers daar kun je snel kopiëren, plakken en wijzigen.

Ook het aanmaken van nieuwe mappen is geen punt op deze manier. Een andere methode waar ik aan zit te denken is met de Zoekmachine Everything van Voidtools maar dan moeten de doellocaties wel aangemaakt zijn. Maar goed, alles kost tijd.
 
@caffie.
Persoonlijk stel ik het niet op prijs een reactie van deze topic via privé berichten te ontvangen. Privé berichten zijn hier niet voor bedoeld.

En ja, de commandoregels kunnen allemaal in een batch file worden gezet.
Wat Senso al zegt, het is even wat werk, maar dat is een keuze die je maakt of moet maken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan