Jump to content

Batchdatei für automatisches kopieren


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Hallo Community,

 

ich würde gerne eine Batchdatei erstellen, die automatisch neu hinzugefügte Dateien in einen andern Ordner kopiert ohne die Batchdatei jedes Mal neu ausführen zu müssen. 
 

Kann man sowas durch Schleifen oder Ähnliches lösen?
 

Beispiel:

Batchdatei wird nach dem Hochfahren einmalig ausgeführt

 

Dateien werden durch einen längeren Kopiervorgang nach und nach erst zum Ordner 1 hinzugefügt und sollen parallel aber automatisch nach Ordner 2 mit synchronisiert werden. 

 

Link to post
vor 43 Minuten schrieb SimonZoller:
 

Kann man sowas durch Schleifen oder Ähnliches lösen?

Simon, Hallo und willkommen im MCSEboard.

 

Die Antwort auf die einzige Frage, die Du gestellt hast ist ganz kurz: Ja. ;-) 

 

Bevor Du jetzt weiterfragst - auch das hier ist kein kostenloser Scripting-Service. Es gibt für solche Aufgabenstellungen unzählige Beispiele überall im Netz und auch hier. Es wird also erwartet, dass Du erstmal Deine Hausaufgaben machst und wenigstens einen eigenen Versuch unternimmst, Deine Aufgabe zu lösen. Wenn Du dann dabei auf Probleme stößt, kannst Du sehr sehr gern Deinen Code hier posten und ich verspreche Dir, wir werden uns beim Versuch, Dir zu helfen, beide Beine ausreißen.  ;-) 

Zahlreiche Code-Beispiele für Powershell-Scripte findet z.B. bei PowershellGallery oder StackOverflow oder im Deutschen Microsoft Windows Powershell Forum

Link to post

Vielen Dank! :-)

 

Ich muss gestehen, dass ich ein absoluter Anfänger bin.

 

 

Die ursprüngliche Batchdatei zum kopieren lautet bei mir wie folgt:

 

xcopy "C:\Users\X\Desktop\Ordner 1" "C:\Users\X\Desktop\Ordner 2"

 

 

Dann habe ich versucht eine Schleife einzubringen damit die Ordner dauerhaft synchronisieren ohne den Batchbefehl jedes Mal aufs Neue ausführen zu müssen und genau da hapert es bei mir:

 

for %%i in "C:\Users\X\Desktop\Ordner 1" do copy "C:\Users\X\Desktop\Ordner 2"

 

 

 

Link to post
vor 11 Minuten schrieb SimonZoller:

Dann habe ich versucht eine Schleife einzubringen damit die Ordner dauerhaft synchronisieren ohne den Batchbefehl jedes Mal aufs Neue ausführen zu müssen und genau da hapert es bei mir:

Moin

 

Das funktioniert so nicht, es funktioniert so nicht mit der for-schleife. Die for ist dazu nicht geeignet. Du wirst dich mit PS anfreunden müssen.

Edited by lefg
Link to post

OK, Es gibt mit hoher Wahrscheinlichkeit, eine Möglichkeit, die Aufgabe mit den Mitteln von CMD/Batch zu erledigen. Ich persönlich kann Dir dabei aber nicht helfen. Ich finde die Syntax von CMD/Batch krude und absolut un-intuitiv und bin damit nie warm geworden. Das macht aber nix, weil es schon lange eine mächtige, vielseitige, sehr gut dokumentierte und auch sehr aktiv weiterentwickelte und wie ich finde, deutlich einfachere Alternative gibt - Powershell. Es dauert nicht lange, sich die Grundlagen zu Erarbeiten und man bekommt dafür im Netz an allen Ecken und Enden Hilfe. Und wenn man vorhat, noch eine Weile in Windows-System-Umgebungen "unterwegs" zu sein, dann lohnt sich der Aufwand, das zu erlernen, auf jeden Fall.

Meine Empfehlung wäre also, nicht weiter zu versuchen, die Aufgabe mit CMD/Batch zu lösen, sondern sich die Zeit zu nehmen,  und mit Powershell anzufangen. Es gibt dazu zahlreiche gute Quellen im Internet, wo man anfangen kann. Ich empfehle immer noch gern folgende:

 

Getting Started with PowerShell 3.0    - ja, die Videos sind schon alt und es geht nicht um die aktuelle Version, aber die Grundlagen sind immer noch die Gleichen und es ist eben für Anfänger gemacht.

 

Windows PowerShell™ 4: TFM     - das Gleiche wie bei den Videos - für den Einstieg zu nachschlagen meiner Meinung nach völlig ausreichend ... den Rest findet man im Netz oder in Foren, wie diesem hier.

 

Viel Spaß!

Edited by BOfH_666
Link to post

Wenn Du 2 Ordner synchron halten willst, gibt es natürlich auch die passenden fertigen Produkte dafür. U.a. WinSCP kann das, FreefileSync kann das auch.

 

Wie genau lauten die Anforderungen? Oder ist das eine Aufgabenstellung vom Lehrer an den Schüler in der Berufsschule?

Link to post

Wenns Windows sein soll, empfehle ich intensive Beschäftigung mit "robocopy /mon". RSync wäre auch geeignet, ist aber schwieriger aufzusetzen - bei c't gibt's da auch ein fertiges Framework zum Download. Alles andere steht oben schon :-)

 

  • Thanks 1
Link to post
vor 9 Stunden schrieb SimonZoller:

for %%i in "C:\Users\X\Desktop\Ordner 1" do copy "C:\Users\X\Desktop\Ordner 2"

 

Die for ist keine herkömmliche wie in höheren Programmiersprachen, es gibt keine eingebaute Abbruchsteuerung, sie läuft bis zum "bitteren" Ende durch, einen Abbruch muss man sich selbst schaffen durch einen Sprung aus der Schleife. Für Textiteration/Zeichenkettenverarbeitung muss for /f verwendet werden. Man schaue in die Hilfe for /? ! Ich sags mal so, es ist nichts für Anfänger. Ich würde es heute wohl nicht mehr anfassen.

 

Robocopy halte ich für einen gute Idee.

Edited by lefg
  • Like 1
Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...