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

Probleme mit Log-Datei und Frage zum Überschreiben von Dateien

Frage Entwicklung Batch & Shell

Mitglied: Imrazor

Imrazor (Level 1) - Jetzt verbinden

15.02.2010 um 13:28 Uhr, 5102 Aufrufe, 6 Kommentare

1.) Log-Einträge werden nicht immer geschrieben
2.) Wie kann man vorhandene Dateien überschreiben?

Hallo Leute!

Ich muss euch wieder mal bemühen. Dieses mal habe ich zwei Fragen:

1) Ich schreibe in eine Log-Datei, bevor mein Skript eine Datei kopiert/verschiebt und wenn nochmal nach dem Vorgang:

01.
Function Copy(Quellpfad, Zielpfad) 
02.
 
03.
Set FSO = CreateObject("Scripting.FileSystemObject") 
04.
Set Quelle = FSO.GetFolder(Quellpfad) 
05.
Set Ziel = FSO.GetFolder(Zielpfad) 
06.
 
07.
For Each File in Quelle.Files 
08.
 
09.
	'Log-Eintrag schreiben: 
10.
	Bericht = "Protokoll " & File.Name & " wird von " & Quellpfad & " nach " & Zielpfad & " kopiert!" 
11.
	Call Log(Logdatei, Bericht) 
12.
 
13.
	FSO.CopyFile Quellpfad & "\*.*", Zielpfad & "\" 
14.
 
15.
	'Log-Eintrag schreiben: 
16.
	Bericht = "Protokoll wurde von " & Quellpfad & " nach " & Zielpfad & " kopiert!" 
17.
	Call Log(Logdatei, Bericht) 
18.
Next 
19.
	 
20.
End Function
01.
Function Move(Quellpfad, Zielpfad) 
02.
 
03.
Set FSO = CreateObject("Scripting.FileSystemObject") 
04.
Set Quelle = FSO.GetFolder(Quellpfad) 
05.
Set Ziel = FSO.GetFolder(Zielpfad) 
06.
 
07.
For Each File in Quelle.Files 
08.
 
09.
	'Log-Eintrag schreiben: 
10.
	Bericht = "Protokoll " & File.Name & " wird von " & Quellpfad & " nach " & Zielpfad & " verschoben!" 
11.
	Call Log(Logdatei, Bericht) 
12.
 
13.
	FSO.MoveFile Quellpfad & "\*.*", Zielpfad & "\" 
14.
 
15.
	'Log-Eintrag schreiben: 
16.
	Bericht = "Protokoll wurde von " & Quellpfad & " nach " & Zielpfad & " verschoben!" 
17.
	Call Log(Logdatei, Bericht) 
18.
Next 
19.
 
20.
End Function
Und hier die Funktion zum Schreiben des Logs:

01.
Function Log(Datei, LogTxt) 
02.
 
03.
If LogAktiv=1 Then 
04.
	Set FSO = CreateObject("Scripting.FileSystemObject") 
05.
	Set FileOut = FSO.OpenTextFile(Datei,8,True) 
06.
 
07.
	FileOut.WriteLine (now()) 
08.
	FileOut.WriteLine (LogTxt) 
09.
	FileOut.writeLine ("   ") 
10.
	FileOut.Close 
11.
 
12.
	Set FileOut = Nothing 
13.
End If 
14.
 
15.
End Function 
Am Anfag meines eigentlichen Codes definiere ich den Pfad zur Logdatei und ob gelogged werden soll. Das funktioniert auch einwandfrei.

Mein Problem: Ich teste mit zwei Dateien, die kopiert/verschoben werden. Beim Kopieren werden die Log-Einträge für beide Dateien gesetzt, beim Verschieben nur für eine Datei. Woran kann dies liegen??

Hier mal ein Beispiel für nen Logeintrag:
01.
15.02.2010 13:19:14 
02.
Protokoll PDFCreatorDoku.pdf wird von D:\PRINTTEST\TEMP2 nach D:\PRINTTEST\TEMP verschoben! 
03.
    
04.
15.02.2010 13:19:17 
05.
Protokoll wurde von D:\PRINTTEST\TEMP2 nach D:\PRINTTEST\TEMP verschoben! 
06.
   
07.
15.02.2010 13:19:37 
08.
Protokoll PDFCreatorDoku.pdf wird von D:\PRINTTEST\TEMP nach D:\PRINTTEST\TEMP5\2010-02-15 kopiert! 
09.
    
10.
15.02.2010 13:19:40 
11.
Protokoll wurde von D:\PRINTTEST\TEMP nach D:\PRINTTEST\TEMP5\2010-02-15 kopiert! 
12.
    
13.
15.02.2010 13:19:40 
14.
Protokoll Signatur_mit_Adobe8.pdf wird von D:\PRINTTEST\TEMP nach D:\PRINTTEST\TEMP5\2010-02-15 kopiert! 
15.
    
16.
15.02.2010 13:19:43 
17.
Protokoll wurde von D:\PRINTTEST\TEMP nach D:\PRINTTEST\TEMP5\2010-02-15 kopiert! 
18.
    
19.
15.02.2010 13:19:43 
20.
Protokoll PDFCreatorDoku.pdf wird von D:\PRINTTEST\TEMP nach D:\PRINTTEST\TEMP4\2010-02-15 verschoben! 
21.
    
22.
15.02.2010 13:19:46 
23.
Protokoll wurde von D:\PRINTTEST\TEMP nach D:\PRINTTEST\TEMP4\2010-02-15 verschoben!

2.) Meine zweite Frage:

Wie kann ich eine bereits vorhandene (gleiche) Datei beim Kopieren/Verschieben überschreiben?

Ich dachte, dies ginge mit dem Parameter TRUE, bekommen dann aber einen Fehler.

01.
FSO.MoveFile Quellpfad & "\*.*", Zielpfad & "\", TRUE
Mitglied: Biber
15.02.2010 um 13:53 Uhr
Moin IM Razor,

zu a) Für deine Log-Zeile ermittelst du den "richtigen" Text zwar dateiweise.
Die .MoveFile-Methode allerdings lässt du ja mit Wildcards (FSO.MoveFile Quellpfad & "\*.*", Zielpfad & "\" ) loslaufen.
D.h. it works as designed... - kein ungebührliches Verhalten des Schnipsels festzustellen.

zu b) Warum sollte MoveFile jetzt am Wochenende einen undokumentierten Parameter "ÜberschreibFallsVorhanden" dazubekommen haben?
Nur weil Valentinstag war?
--> Also, Vorhandensein "alteDatei" (im Zielverzeichnis) selber prüfen; ggf. vorher löschen.

Grüße
Biber
Bitte warten ..
Mitglied: Imrazor
15.02.2010 um 14:06 Uhr
Hey Biber,

zu 1) dumme Frage: Und wieso funktioniert es dann bei der CopyFile-Methode??

Hier mache ich es ja genauso mit Wildcards:
01.
FSO.CopyFile Quellpfad & "\*.*", Zielpfad & "\" 
zu 2) hmm, dachte es gibt für MobeFile ebenfalls diesen Parameter geben, wie bei CopyFile. Anscheinend ist dem nicht so.
Bitte warten ..
Mitglied: bastla
15.02.2010 um 14:33 Uhr
Hallo lmrazor!
Und wieso funktioniert es dann bei der CopyFile-Methode??
Nach dem (ersten) Kopieren aller Dateien befinden sich wie viele Dateien im Quellpfad? Jedenfalls mehr als nach dem (ersten und einzigen) Verschieben aller Dateien ...

Anstelle von
FSO.MoveFile Quellpfad & "\*.*", Zielpfad & "\"
würde sich
File.Move Zielpfad & "\"
besser eignen (gilt analog auch für das Kopieren und die Methode "Copy") ...

Grüße
bastla
Bitte warten ..
Mitglied: Imrazor
15.02.2010 um 15:22 Uhr
Super, danke bastla!

Da stand ich wohl ein bißchen auf der Leitung

Naja, jetzt muss ich nur noch was zusammenbasteln für die Prüfung, ob die Dateien schon vorhanden sind...
Bitte warten ..
Mitglied: Imrazor
15.02.2010 um 16:14 Uhr
Für alle, die es interessiert, ich habe die Prüfung so gelöst:

01.
Function Move(Quellpfad, Zielpfad) 
02.
 
03.
Set FSO = CreateObject("Scripting.FileSystemObject") 
04.
Set Quelle = FSO.GetFolder(Quellpfad) 
05.
Set Ziel = FSO.GetFolder(Zielpfad) 
06.
 
07.
For Each File in Quelle.Files 
08.
 
09.
	If FSO.fileExists(Zielpfad & "\" & File.Name) then 
10.
	 
11.
	FSO.DeleteFile Zielpfad & "\" & File.Name 
12.
 
13.
	File.Move Zielpfad & "\" 
14.
 
15.
	Else 
16.
 
17.
	File.Move Zielpfad & "\" 
18.
 
19.
	End If 
20.
Next 
21.
End Function
Bitte warten ..
Mitglied: bastla
15.02.2010 um 17:31 Uhr
Hallo lmrazor!

Ließe sich noch etwas "eindampfen" :
01.
Function Move(Quellpfad, Zielpfad) 
02.
 
03.
Set FSO = CreateObject("Scripting.FileSystemObject") 
04.
Set Quelle = FSO.GetFolder(Quellpfad) 
05.
Set Ziel = FSO.GetFolder(Zielpfad) 
06.
 
07.
For Each File in Quelle.Files 
08.
 
09.
	If FSO.fileExists(Zielpfad & "\" & File.Name) Then FSO.DeleteFile Zielpfad & "\" & File.Name 
10.
 
11.
	File.Move Zielpfad & "\" 
12.
 
13.
Next 
14.
End Function
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Backup
Nur korrupte Dateien aus dem Backup überschreiben
gelöst Frage von MichiD41Backup4 Kommentare

Hallo Zusammen, ich habe folgende Situation: Vor einigen Tagen viel uns auf , dass das Filesystem unseres Gruppenlaufwerkes (1,3 ...

Windows Tools
Robocopy . Datei im Zielverzeichnis nur überschreiben, wenn neuer
Frage von gnrmarcelWindows Tools7 Kommentare

Hallo, ich habe hier in der Firma, ältere USB Festplatten, wo das Gleiche (Ordner struktur inkl. Dateien) drauf ist ...

Batch & Shell
Batchdatei soll überprüfen, ob auf eine Log Datei
Frage von hoppalaBatch & Shell1 Kommentar

Hiho :) ! Ein Freund und ich haben eine Batchdatei erstellt, leider kommen wir bei einer Sache nicht weiter. ...

Mac OS X
Überschreiben von Dateien mit ADOBE und Server 2008
gelöst Frage von schritttmacherMac OS X5 Kommentare

Hallo zusammen, bei unserem Kunden, Mischbetrieb aus MAC und PC in Verbindung mit ADOBE Produkten, kommt es immer wieder ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...