Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Mit Robocopy aus Batchdatei werden neuerdings Laufwerkfehler angezeigt - warum?

Mitglied: red-eye

red-eye (Level 1) - Jetzt verbinden

08.10.2013, aktualisiert 15:04 Uhr, 4006 Aufrufe, 9 Kommentare, 4 Danke

Hallo Administrator.de-Mitglieder,

bislang hatte ich mit zwei Batch-Dateien mit dem Befehl Robocopy ein wichtiges Verzeichnis auf meiner Festplatte mit einem Netzwerkverzeichnis oder mit einem USB-Stick synchronisiert.

Als ich mir vor drei Wochen mit dem brandneuen und noch fehlerhaften Kaspersky 2014 meine Userrechte zerschossen hatte, setzte ich mein Notebook Dell Vostro 3450 (14''-Bildschirm) mit 64-bit und Windows 7 Professional vollkommen neu auf. In den Explorer-Ordneroptionen deaktiviere ich neuerdings das Häkchen für "Leere Laufwerke im Ordner Computer ausblenden. Ich lasse im Navigationsbereich "Alle Ordner anzeigen" und "Automatisch auf aktuellen Ordner erweitern".

Seitdem zeigt mir meine Synchronisations-Batch eine von cmd/win ausgehende Fehlermeldung an: ad9a7b093030d2350bc0c5f0346e6075 - Klicke auf das Bild, um es zu vergrößern

Der folgende Code entspricht der Synchronisation der neueren Dateien von USB-Stick zur Festplatte:
Ich konnte das Problem jetzt umgehen, indem ich die Laufwerke der Sticks einen Buchstaben hochsetzte. Aber falls die Frage nicht zu trivial ist, oder zu umständlich: Kann mir jemand die Fehlermeldung erklären? Kann ich E: trotzdem durchsuchen lassen, falls mal die Laufwerke anders sortiert oder ein Laufwerk von Windows ausgelassen wird?

Vielen Dank im Voraus fürs Lesen und für jeden Beitrag!

Gruß,
red-eye
Mitglied: Endoro
08.10.2013 um 16:50 Uhr
Hi, ich nehme an, du suchst den Laufwerksbuchstaben für den Stick?
Das könnte so gehen:
lg.
Bitte warten ..
Mitglied: red-eye
08.10.2013, aktualisiert um 20:06 Uhr
Hallo Endoro!

Ja, im Grunde ist es das. Vielen Dank für Deinen interessanten Code! Könntest Du mir noch ein wenig detaillierter erklären, was Dein komplizierter Befehl alles beinhaltet?

- Was bedeutet "tokens=2delims==", was "%%a", was ist "'wmic volume where "drivetype=2" get name"?
- Was sind das für interessante Formatierungsbefehle: "/format:list^|find "=""?

Schau mal, das Problem bleibt dasselbe! E: ist bei mir offensichtlich ein SD-Karten-Laufwerk, derzeit leer. G: (Verbatim) ist der Stick.
6782aeb340d9528807451b028715b159 - Klicke auf das Bild, um es zu vergrößern
b37241442a383ebcd583e3136e384cc1 - Klicke auf das Bild, um es zu vergrößern

Mit freundlichen Grüßen,
red-eye
Bitte warten ..
Mitglied: pieh-ejdsch
08.10.2013, aktualisiert um 21:21 Uhr
Moin red-eye,

Die Fehler-MessageBox erscheint, weil der Befehlsinterpreter vor dem Zugriff auf das Laufwerk nicht auf ein Vorhandenes gültiges eingebundenes Medium (Volume) prüft.
Eine ExistensPrüfung mit if grätscht da leider genauso wie die Erweiterungen von ForVariablen und Batchparametern.
Eine Prüfung auf ein eingebundenes Medium (E: ) erfolgt in der CMD-Line mit
Oder, was in Deinem Fall mit DIR direkt mit Autorun.inf
Warum machst Du diese Überprüfungen am Anfang nur halb und doppelt? Etwas chronologisch wäre es in etwa so:
Gruß Phil
Bitte warten ..
Mitglied: red-eye
08.10.2013 um 21:59 Uhr
Hi Phil,
vielen Dank schon Mal! Ich werde mir das in Ruhe alles ansehen und testen!

Gruß, red-eye
Bitte warten ..
Mitglied: Endoro
09.10.2013 um 01:14 Uhr
Hi,
man kann- mit ordentlichem Aufwand- Windows überreden, ausgehend von "Verbatim" das logische Laufwerk auszugeben:
Wenn mehrere Verbatim-Laufwerke angeschlossen sind, würde ich über label eindeutige Namen vergeben und die mit vol abfragen.
lg.
Bitte warten ..
Mitglied: red-eye
09.10.2013, aktualisiert um 02:17 Uhr
Hallo Endoro, hallo Phil!

Endoro, vielen Dank für Deine neuen Ideen! Ich bin allerdings noch zu Fuß dabei, Deine und Phils Code-Vorschläge zu verstehen. Bin leider nicht ganz so firm, wie Ihr Experten. Könntest Du mir dabei nochmals helfen?

- Warum wählst Du tokens^=7
- Ich verstehe einfach nicht, was ein Token ist ...
- Was sind in der Hilfe für FOR eigentlich die umgekehrten Anführungszeichen und Anführungszeichen?


Ich möchte nun gerne noch wiedergeben, was ein Test Eurer Vorschläge für die Laufwerkerkennung ergab:

1. Endoros erster Vorschlag:
2. Phils Vorschlag:
Es gibt offenbar mehrere Wege, ein Laufwerk, bzw. einen USB-Stick am USB-Anschluß zu erkennen. Meiner lief ursprünglich darauf hinaus, dasjenige Laufwerk als USB-Stick zu definieren, welches eine Datei autorun.inf im Stammverzeichnis enthält. Bei der Suche danach trat aber wegen des leeren, dennoch vorhandenen SD-Karten-Verzeichnisses die oben dargestellte Fehlermeldung auf.

Wenn ich Euch richtig verstehe, dann sucht Ihr mit einem Systembefehl nach vorhandenen Laufwerken, in der Hoffnung, daß die Fehlermeldung nicht aufkommt. Bei Endoros erstem Lösungsversuch geschah das leider trotzdem. Bei Phils Vorschlag entsteht leider ein anderer Fehler. Endoros zweiter Vorschlag könnte scheitern, sobald ich einmal einen anderen als den Verbatim-Stick verwenden würde. Dennoch vielen Dank für Eure interessanten Code-Stücke, aus denen ich wieder eine Menge lernen und nachmachen kann!

Eine Lösung könnte der Code mit der Laufwerkssuche mit vol >nul darstellen. Er erzeugt diese oben dargestellte Messagebox nicht. Aber auch dazu wieder eine Frage:

- Was bedeutet dieser Befehl?
- Und vor allem, was bedeutet >nul, und wozu noch 2>nul?


Bitte seid so freundlich, und geht ersteinmal noch auf meine Fragen ein, bevor Ihr die nächsten brillianten Codes vorschlagt, die ich aber nicht richtig verstehen kann!

Herzliche und dankbare Grüße von
Red-eye
Bitte warten ..
Mitglied: red-eye
09.10.2013, aktualisiert um 04:01 Uhr
Zuletzt noch der Test mit dem Befehl mit vol und >nul, der USB-Stick ist an Laufwerk G:.

Code:
Ergebnis:
Bitte warten ..
Mitglied: pieh-ejdsch
09.10.2013, aktualisiert 10.10.2013
Moin red-eye,
Wenn ich Euch richtig verstehe, dann sucht Ihr mit einem Systembefehl nach vorhandenen Laufwerken, in der Hoffnung, daß die Fehlermeldung nicht aufkommt. Bei Endoros erstem Lösungsversuch geschah das leider trotzdem. Bei Phils Vorschlag entsteht leider ein anderer Fehler.
Nein - der Befehl vol oder der Befehl dir verhindern das Auftreten der Fehlermeldung mittels Messagebox, was aber mit der Standardfehlerausgabe (Handle 2) der CMD-Line nichts zu tun hat.

mountvol listet nur die lokal eingebundenen Laufwerke auf, wmic nur die USB Laufwerke, anstatt eine Liste von A-Z durchzugehen wird schon ausgefiltert.
Dein Test in Zeile 4
hast Du etwas falsch übernommen ->> copy paste Fehler?
Es sollte sicher so aussehen:
Die Ausgabe des Verwaltungintrumentes (wmic) wird in der Forschleife mit "tokens=2" dazu angewisen das zweite vorkommen inerhalb des/der delimiter(s) "=\" "delims==\" in der Variable %v auszugeben.
Der Befehl Vol erwartet nur eine Laufwerksbezeichnung gefolgt von einen Doppelpunkt, sonst nichts. wird etwas anderes Hinzugefügt interpretiert die CommanLine dies als keine Eingabe, da diese Syntax nicht erwartet wird. Also wird laut vol /? das Aktuelle Laufwerk angezeigt.

Theoretisch würde es auch so etwas umständlich wen der VolumeName des Laufwerkes VERBATIM16 ist, gehen:
In einer Autorun.inf kannst Du auch noch ganz speziell ein Label vergeben und nach einer gewissen Zeichenfolge suchen. Der Möglichkeiten gibt es noch viele mehr
um einen Bestimmten Datenträger ausfindig zu machen; siehe: @Endoro

So ganz nebenbei: Von wo aus wird denn das Backkup angestossen?

@Friemler hat unter Wissen ein schönes For-Tutorial verfasst.
da die Befehlsverknüpfung && den Folgenden Befehl nur ausführt, wenn der vorige Erfolgreich war, sowie die Verknüpfung || nur bei Misserfolg des vorigen Befehls den folgenden ausführt, benötige ich die Ausgabe des ersten Befehls nicht. Der UmleitungsPfeil leitet erst die Standardauseingabe (Handle 1) ins "nichts" und die Fehlerausgabe (Handle 2) wird auch dahin geschickt.

In der Befehlszeilenreferenz kannst Du Dir die Erklärungen genauer durchlesen.

Gruß Phil
Bitte warten ..
Mitglied: red-eye
09.10.2013 um 22:29 Uhr
Hallo Phil,

vielen Dank für Deine erneute Antwort und für die vielen Erklärungen! Ich lese so nach und nach in der Wissenswelt bei Administrator.de, insbesondere gehe ich Deinen Empfehlungen zur Erklärung der FOR-Schleife nach. (Ist allerdings viel Lese- und Versteh-Stoff, ich bin noch lange nicht durch.)

Zitat
Dein Test in Zeile 4 ... hast Du etwas falsch übernommen ->> copy paste Fehler?
Das ist gut möglich, da ich mich mit der Syntax dieser komplizierten Befehle überhaupt nicht auskenne. Ich habe nun also, ohne wirklich zu wissen, welche Zeichen nötig sind, anhand der von cmd.exe ausgelieferten Ergebnisse etwas experimentiert.

Mit Endoros Vorschlag werden die Laufwerke durchgetestet. Probleme bei seinem Vorschlag waren, daß der Backslash mitgeliefert wurde, und daß die Laufwerke zwar gefunden, aber nicht überprüft wurden. Den Backslash habe ich entfernt, damit entsteht folgendes Ergebnis:
Dann der Vorschlag von Phil, ich habe ihn jetzt durch einiges Ausprobieren korrigiert. Er zählt die Laufwerke rückwärts durch, überprüft sie und findet das kleinste aktive Laufwerk. Durch die Übergabe des Fehlercodes an nul bleibt nun auch die ursprüngliche störende Fehler-Messagebox aus:
Der entscheidende Punkt, der meine Synchronisations-Batch nun wieder funktionstüchtig macht, ist tatsächlich die Ermittlung des Laufwerks mit Übergabe des Fehlers (Handle 2) an nul. Hiermit kann ich dann sogar auch mit meinen etwas einfacheren Bordmitteln die Laufwerke rückwärts zählen und das unterste aktive Laufwerk ermitteln. Ich habe ja insgesamt vier USB-Buchsen, theoretisch könnten sie alle belegt sein, aber sinnvoll ist die Auswahl des untersten aktiven USB-Laufwerks. Offenbar zählt der Befehl vol das CD-Laufwerk und die Festplatte nicht mit. Dann entsteht folgender Code:
Ich denke, damit sind mein Problem gelöst und meine Frage nach den Ursachen beantwortet. Ich werde die Frage als gelöst setzen.

Vielen Dank an Endoro und Phil!
red-eye
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Robocopy Version
gelöst Frage von schmitBatch & Shell4 Kommentare

Hallo Zusammen, folgendes Problem: Ich kann die Option /MT :n nicht nutzen, da beim Ausführen von "robocopy" in Powershell scheinbar ...

Batch & Shell
Robocopy Logfile
gelöst Frage von michi-ffmBatch & Shell7 Kommentare

Hallo zusammen, evtl kann jemand helfen ^^ Habe hier ein Teile aus dem Code: Das skript synchronisiert 2 Ordner ...

Batch & Shell
Robocopy Fehlerhaft
gelöst Frage von michi-ffmBatch & Shell2 Kommentare

Hallo Zusammen, evtl kann jemand helfen. Bei der Quelle habe ich leider ein Leerzeile, im Netz lese ich immer ...

Netzwerke
RoboCopy Fehlermeldung
gelöst Frage von Daoudi1973Netzwerke19 Kommentare

Hallo Zusammen, ich möchte mit RoboCopy einen Ordner vom Server1 auf Server2 kopieren. Ich habe : robocopy \\Server1\T:\\Ordner1 \\Server2\I:\ ...

Neue Wissensbeiträge
Windows Update
MS SQL Server Updates
Information von sabines vor 6 StundenWindows Update

Für 2012, 2014 und 2016 sind seit Dienstag wichtige Sicherheitsupdates verfügar, die eine remote, leicht auszunutzende Lücke im Reporting ...

Microsoft Office

Microsoft warnt: Office 365 am 29. Februar leider nicht nutzbar

Information von Lochkartenstanzer vor 19 StundenMicrosoft Office7 Kommentare

Moin, Wie die Überschrift schon sagt, gibt es offensichtlicham 29. februar ein Problem: Microsoft warnt: Office 365 am 29. ...

Netzwerkmanagement
Siemens Switche initial konfigurieren
Tipp von brammer vor 22 StundenNetzwerkmanagement2 Kommentare

Hallo, Bisher gab es für Siemens Switche die Möglichkeit die initiale Konfiguration über den Simatic Manager oder das Primary ...

Virtualisierung

VEEAM Instant VM Recovery Datenverlust möglich

Information von sabines vor 2 TagenVirtualisierung

Wer instant VM Recovery unter Veeam nutzt, sollte seine Installation überprüfen. In manchen Fällen könnte es zu Datenverlust kommen, ...

Heiß diskutierte Inhalte
Windows Server
Active Directory: Fehler beim Re-Promoten eines Servers
Frage von jordelWindows Server38 Kommentare

Hallo zusammen, Wir hatten einige Replikationsprobleme, weshalb ich gestern Nacht einen Domain Controller erst demoten und danach wieder promoten ...

Microsoft Office
Welches MS Office Lizensmodell für 7 Arbeitsplätze in kleinen Unternehmen
Frage von harbyadmMicrosoft Office20 Kommentare

Hallo, Ich frage Euch welches Lizensmodell das günstigste ist.? ich benötige für z.Zeit 7 ARBEITSPLÄTZE , alles Windows 8-10, ...

PHP
Dynamisches Array erstellen in PHP
Frage von Xaero1982PHP20 Kommentare

Moin Zusammen, ich bräuchte mal einen Geistesblitz. Ich habe ganz viele Daten in einer MongoDb. Ich möchte diese Daten ...

Windows 8
Die digitale Signatur dieser Datei kann nicht überprüft werden
Frage von LochkartenstanzerWindows 817 Kommentare

Moin, Seit gestern ärgere ich mich mit einem verkorksten Windows 8 herum. Bei vielen EXE-Dateien starten will, kommt die ...