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 Von xcopy nicht gefundene Dateien werden nicht protokolliert

Mitglied: phsprenger

phsprenger (Level 1) - Jetzt verbinden

21.05.2014, aktualisiert 23:30 Uhr, 1386 Aufrufe, 4 Kommentare, 2 Danke

Hallo,
mit einem kleinen Batch-Programm versuche ich, eine Liste von Dateien, die in einer TXT-Datei stehen, von A nach B zu kopieren. A und B sind beliebige Verzeichnisse, die man im Vorfeld eingibt oder in einer gesonderten Textdatei speichert. Dieses Problem ist auch an sich gelöst, der Kopiervorgang funktioniert.

Ich will nun auch ein Protokoll in eine Textdatei schreiben, in der für jeden Kopiervorgang festgehalten wird, ob er erfolgreich oder nicht erfolgreich war.

In meinem Testlauf stehen in der Liste 5 zu kopierende Dateien, im angesteuerten Verzeichnis liegen aber nur 3 dieser 5 Dateien (sowie drei andere, die nicht in der Kopierliste stehen).
Wie gewünscht werden die 3 gefundenen Dateien kopiert, die 3 nicht relevanten Dateien ignoriert, die 2 fehlenden Dateien sollen nun eigentlich im Fehlerprotokoll auftauchen ("Datei xy nicht gefunden").

Für die 3 gefundenen Dateien wird im "Fehlerprotokoll" der Erfolg des Kopiervorgangs protokolliert (wäre eigentlich gar nicht nötig, mir würden auch nur die Fehlermeldungen genügen). Die zwei nicht gefundenen Dateien aber tauchen im Protokoll nicht auf!

Ich habe es mit robocoy und xcopy als Kopierbefehl versucht, um vielleicht zu verstehen, was das Problem ist - aber der Effekt ist bei beiden Befehlen der gleiche: das Batchprogramm protokolliert nur die erfolgreichen Kopiervorgänge, nicht die fehlgeschlagenen.

Ich hab verschiedene Lösungsvorschläge aus diesem und anderen Foren ausprobiert, alle ohne Ergebnis. Ich vermute mittlerweile, dass eine nicht gefundene Datei nicht als "Fehler" ausgegeben wird, sondern einfach übersprungen wird. Dafür spricht, dass auch auf dem Bildschirm keine Fehlermeldungen angezeigt werden. Erst wenn ich den Befehl manuell in die Konsole eingebe und eine einzelne Datei kopieren will, die es nicht gibt, wird mir ein Fehler angezeigt.

Wär schön, wenn jemand das Problem erkennt und mir helfen kann - danke sehr!


Zum besseren Verständnis mein Batchprogramm:

01.
@echo off &setlocal 
02.
 
03.
SET "sourceList=Liste.txt" 
04.
SET "logFile=Fehlerprotokoll.txt" 
05.
 
06.
FOR /f "delims=" %%a IN (Quelle.txt) DO (set sourceRoot=%%a) 
07.
ECHO Die Dateien werden aus dem Verzeichnis %sourceRoot% kopiert 
08.
 
09.
FOR /f "delims=" %%b IN (Ziel.txt) DO (set destFolder=%%b) 
10.
ECHO Die Dateien werden in das Verzeichnis %destFolder% kopiert 
11.
 
12.
PAUSE 
13.
 
14.
:: KOMMENTAR: Variante 1 mit xcopy 
15.
FOR /f "delims=" %%i in ('dir /a-d /b /s "%sourceRoot%\*.pdf"^|findstr /ig:"%sourceList%"') DO (xcopy "%%~i" "%destFolder%\") >> %logFile% 2>&1 
16.
 
17.
:: KOMMENTAR: Variante 2 mit robocopy; in dem Fall ist die oben definierte Variable für das Logfile irrelevant. 
18.
FOR /f "delims=" %%i in ('dir /a-d /b /s "%sourceRoot%\*.pdf"^|findstr /ig:"%sourceList%"') DO (robocopy /V "%%~i" "%destFolder%\") 
19.
 
Mitglied: Xaero1982
LÖSUNG 21.05.2014, aktualisiert um 23:30 Uhr
Nabend,

benutze bitte Codetags: <"code"> <"/code"> ohne "".

Mir ist nicht ganz klar was du da machst...

Du durchsuchst das Quellverzeichnis nach pdf Dateien und diese müssen dann in der besagten "Liste.txt" sein.
Das hat aber zur Folge, dass du nie eine Fehlermeldung bekommen wirst, weil er nur nach Dateien sucht, die tatsächlich auch im Quellverzeichnis vorhanden sind.
Beispiel:

Er durchsucht den Ordner: dir /a-d /b /s "%sourceRoot%\*.pdf
und findet:
1.pdf
2.pdf
3.pdf

In der Liste steht:
1.pdf
2.pdf
3.pdf
4.pdf
5.pdf

Nun guckt er: 1-3.pdf sind alle in der Liste und im Quellordner -> Kopier ich!
Nach 4-5.pdf sucht er gar nicht in der Liste, weil diese nicht im Ordner sind. Ergo: Keine Fehlermeldung.

Du willst ja nur die Dateien kopieren die in der Liste stehen?

Also:
01.
 FOR /f "delims=" %%i in ("%sourceList%") DO (xcopy "%sourceRoot%\%%~i" "%destFolder%\") >> %logFile% 2>&1
Gruß
edit: Dein Nick erinnert mich an meinen Ausbilder
Bitte warten ..
Mitglied: bastla
LÖSUNG 21.05.2014, aktualisiert um 23:30 Uhr
Hallo phsprenger und willkommen im Forum!

Deine Interpretation
Ich vermute mittlerweile, dass eine nicht gefundene Datei nicht als "Fehler" ausgegeben wird, sondern einfach übersprungen wird.
ist völlig zutreffend -
dir /a-d /b /s "%sourceRoot%\*.pdf"
liefert ja schließlich nur "gefundene" Dateien, und erst das anschließende Filtern legt fest, ob die Datei auch kopiert werden soll.

Wenn Du alle Dateien aus "Liste.txt" kopieren bzw deren Fehlen feststellen willst, musst Du eher so vorgehen (ungetestet):
01.
for /f "usebackq delims=" %%i in ("%sourceList%") do ( 
02.
    set "Gefunden=" 
03.
    for /f "delims=" %%a in ('dir /s/b/a-d "%sourceRoot%\%%i"') do ( 
04.
        set Gefunden=true 
05.
        xcopy "%%a" "%destFolder%\" 2>>"%logFile%" 
06.
07.
    if not defined Gefunden >>"%logFile%" echo "%%i" nicht gefunden 
08.
)
Falls übrigens "Liste.txt" nur Dateinamen, nicht aber auch den Typ (.pdf) enthalten sollte, wäre entsprechend "%sourceRoot%\%%i.pdf" zu verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: phsprenger
21.05.2014 um 23:21 Uhr
Super Hinweis, Danke! So funktionierts.

Hab das letzte Mal zu DOS-Zeiten sehr simple Batch-Dateien geschrieben und mir den Code da oben mehr oder weiger zusammengesucht. Dass die Logik genau verkehrt herum ist ist mir nicht aufgefallen - aber vollkommen einleuchtend, wenn man genau hinguckt. Da meine Dateien aber ja immer brav kopiert wurden(und die NICHT in der Liste stehenden Dateien auch ignoriert wurden) hab ich den Fehler an der Stelle überhaupt nicht gesucht.

Danke für die Hinweise und Hilfe, bastla und Xaero1982 - jetzt klappts auch!!!
Bitte warten ..
Mitglied: Xaero1982
21.05.2014, aktualisiert um 23:39 Uhr
Super, dann noch auf gelöst setzen und Bastla und ich freuen uns auch auf ein Klick wenns zur Lösung beigetragen hat

Gruß
edit: Schön, dass du ihn doch wieder freigegeben hast
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Xcopy jedoch nur die Dateien die nicht älter

gelöst Frage von zeroblue2005Batch & Shell13 Kommentare

Hallo Zusammen, Wie kann ich diese Script anpassen, so dass aus der Quelle nur die Dateien kopiert werden, die ...

Batch & Shell

Xcopy Batch-Datei

gelöst Frage von LauchheimerBatch & Shell3 Kommentare

Tag Leute, Ich habe in einer Batchdatei einen xcopy-Befehl. Dieser soll eine bestimmte Datei kopieren. Diesen führe ich mit ...

Batch & Shell

Nach xcopy feststellen, ob Datei kopiert wurde oder nicht

gelöst Frage von Scar61Batch & Shell9 Kommentare

Hallo zusammen, in einem Skript wird eine Datei nur dann kopiert, wenn sie in der Quelle neuer ist als ...

Batch & Shell

Xcopy-script kopiert nur 1 datei?

gelöst Frage von f0rml0sBatch & Shell2 Kommentare

hey ich versuche gerade mit einem script dateien von einem unc pfad zum anderen zu kopierenleider kopiert das script ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement19 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...