Andreas91 0 Geschrieben 3. September 2017 Melden Teilen Geschrieben 3. September 2017 Hallo zusammen, ich bin neu hier und ich hoffe ihr könnt mir weiterhelfen. Kurz zur Ausgangssituation: Ich habe an der Arbeit ein Messgerät, welches automatisch Dateien (ohne Dateiendung) mit Messergebnissen auf ein Netzlaufwerk 1 abspeichert. Nun möchte ich von einem Rechner aus diese Dateien vom Netzlaufwerk 1 auf ein Netzlaufwerk 2 kopieren, da diese Dateien von dort aus weiterverarbeitet werden. Zuvor muss allerdings noch die Endung der Datei auf .xyz (beispielhaft) geändert werden. Dies alles soll mithilfe einer Batchdatei erfolgen, welche dann automatisch einmal pro Stunde ausgeführt werden soll. Leider kann das Messgerät die Daten nicht direkt im richtigen Format abspeichern und aufgrund fehlender Rechte nicht auf dem Netzlaufwerk 2 abspeichern. Ich habe auch schon angefangen die Batchdatei zu erstellen: @echo offnet use Z: \\Netzlaufwerk2 /user:USER2 PASSWORT2dir "\\Netzlaufwerk1\Unterordner\*.dat" /B /S >Liste.txtfor /f "delims=" %%i in (Liste.txt) do (ren "%%i" "*.xyz")for /f "delims=" %%j in ('dir /s /b /a-d "\\Ntzlaufwerk1\Unterordner\*.xyz"') do move "%%j" "\\Netzlaufwerk2">nul Allerdings funktioniert das nicht und ich habe davon nur wenig Ahnung und hoffe somit auf eure Unterstützung. Vielen Dank schon mal im Voraus. Andreas Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 3. September 2017 Melden Teilen Geschrieben 3. September 2017 Moin, was genau funktioniert denn nicht? Wir helfen dir gern, aber ein bisschen mehr Information brauchen wir schon. Prinzipiell würde ich nicht mit zwei Schleifen arbeiten, sondern mit einer. Dort könnte für jede Datei ein Kopierbefehl stehen, der die Datei mit dem "falschen" Namen unter "richtigem" Namen am Ziel ablegt. Ein zweiter Schritt in derselben Schleife löscht dann das Original. Außerdem würde ich Ausgaben erst dann unterdrücken (>nul), wenn alles läuft. Bis dahin sind Fehlermeldungen ja vielleicht ganz hilfreich. Und schließlich wäre es besser, wenn dein Skript gleich mit dem passenden User ausgeführt wird. Damit musst du dann das Kennwort nicht im Klartext im Batchcode hinterlegen, wo es nicht hingehört. Gruß, Nils Zitieren Link zu diesem Kommentar
Andreas91 0 Geschrieben 3. September 2017 Autor Melden Teilen Geschrieben 3. September 2017 Hallo Nils, vielen Dank für deine schnelle Antwort. Zum Punkt was nicht genau funktioniert: Momentan habe ich das Problem, dass zwar die originalen Dateien umbenannt werden, allerdings nicht ins Ziellaufwerk kopiert werden. Da beim Ziellaufwerk Benutzername und Kennwort verlangt werden, habe ich das auf die oben dargestellte Variante versucht. Dies klappt aber nicht. Ob Benutzername und Kennwort nun im Skript stehen oder nicht ist eigentlich egal, da an diese Datei niemand anderes etwas ändern wird, sobald diese funktioniert. Wie gesagt, ich habe leider nicht sehr viel Ahnung von Batch-Dateien und sollte das "nur mal schnell" nebenbei schreiben :/ Meine Frage im Allgemeinen lautet daher: Ist der Ansatz schon gut so oder kann man das ganze vielleicht doch noch viel kürzer und einfacher schreiben? Gruß Zitieren Link zu diesem Kommentar
mba 133 Geschrieben 3. September 2017 Melden Teilen Geschrieben 3. September 2017 (bearbeitet) Wenn es in der Aufgabenplanung laufen soll verwende UNC-Pfade ohne das z: bei net use Was passiert wenn Du den Net use in einer cmd ausführst? Kannst Du eine Datei via copy in Ziel kopieren? bearbeitet 3. September 2017 von mba Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 4. September 2017 Melden Teilen Geschrieben 4. September 2017 (bearbeitet) Moin Versuchsweise setzte ich wohl echo anstelle move ein und liesse auch Netzlaufwerk und Unterdrückung weg, setzte Pause dazu für die schrittweise Ausführung dazu or /f "delims=" %%j in ('dir /s /b /a-d "\\Ntzlaufwerk1\Unterordner\*.xyz"') do echo "%%j" & pause Dann sähe ich, ob der Parameterstring richtig ist. Dabei beachtete ich, ob es ein nicht sichtbares Leerzeichen am Ende gäbe. bearbeitet 4. September 2017 von lefg Zitieren Link zu diesem Kommentar
Dr.Melzer 191 Geschrieben 4. September 2017 Melden Teilen Geschrieben 4. September 2017 Da beim Ziellaufwerk Benutzername und Kennwort verlangt werden, habe ich das auf die oben dargestellte Variante versucht. Welche Rechte hat denn der Benutzer unter dessen Account du das Script ausführst auf dem Ziellaufwerk? Vielleicht wäre es einfacher und besser dem User mit dem das Script ausgeführt wird die entsprechenden rechte auf dem Ziellaufwerk einzurichten. Dann fällt der Punkt mit dem Passwort im Klartext in der Batch Datei schon mal weg. Zitieren Link zu diesem Kommentar
Doso 77 Geschrieben 17. September 2017 Melden Teilen Geschrieben 17. September 2017 Verzichte auf das net use. das macht spätestens bei der Autmatisierung per Task Scheduler Probleme. Weiterhin würde ich das mit Powershell machen, da ist das alles irgendwie hübscher. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.