Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Dateien kleiner 100 Byte mit Sicherungsdatei überschreiben per Batch

Frage Entwicklung Batch & Shell

Mitglied: CrazyCat-1

CrazyCat-1 (Level 1) - Jetzt verbinden

16.11.2006, aktualisiert 30.11.2006, 3962 Aufrufe, 14 Kommentare

Ich habe folgendes Problem:

In mehreren Dateien werden Daten aktualisiert.

Vor diesem Schritt werden die Dateien in ein Sicherungsverzeichnis kopiert.

Wenn die Aktualiserung fehlschlägt, wird eine Datei kleiner 100 Byte erzeugt.

Ist dies der Fall, so sollen diese Dateien gelöscht werden und mit den Sciherungsdateien ersetzt werden.
Alle diese Dateien tragen die Endung .dfd

Wie kann das in einer Batch - Routine realisiert werden?
Mitglied: MCSE-Cheffe
16.11.2006 um 10:12 Uhr
Hallo,

so ungefähr könnte man es in VBScript lösen, wobei ich nicht genau weis ob auch das Script die Dateien ändern soll und woher die Sicherungsdateien kommen also als Grundgerüst sehen und muss natürlich angepasst werden and deine Umgebung:

Set fso = CreateObject ("Scripting.FileSystemObject")

DateiVerzeichnis = "" ' Quellverzeichnis
Sicherungsverzeichnis = "" ' Zielverzeichnis
Dateigroesse = "100" ' Angabe in Byte

fso.CopyFile DateiVerzeichnis, Sicherungsverzeichnis, vbTrue

Set ZeigerDatei = fso.GetFolder (Sicherungsverzeichnis)
Set Dateien = ZeigerDatei.Files

For Each Datei In Dateien

If Datei.Size < Dateigroesse Then

Datei.Delete
fso.CopyFile DateiVerzeichnis, Sicherungsverzeichnis, vbTrue ' Hier dann dei Pfade anpassen wenn nötig

Else
End If

Next

Gruß MCSE_Cheffe
Bitte warten ..
Mitglied: CrazyCat-1
16.11.2006 um 10:19 Uhr
Danke!


Die Dateien sollen nicht geändert werden.

Geändert werden müßten die Zeilen 2 und 3 Skriptes, richtig?

Also:

DateiVerzeichnis = "c:\daten"

und

Sicherungsverzeichnis = "I:\safety"

richtig?


Das Programm kopiert sämtliche Dateien zuerst in den Sicherungsordner und anschließend zurück, wenn die Datei kleiner als 100 Byte ist, richtig?
Kann man das so einrichten das nur dfd - Dateien, welche nicht das Zeichen _ enthalten, kopiert werden?
Das Skript muss ich dann mit start /min /w wscript safety.vbs in der Batch - Datei aufrufen, richtig?
Bitte warten ..
Mitglied: MCSE-Cheffe
16.11.2006 um 10:32 Uhr
Also:

DateiVerzeichnis = "c:\daten"
Hier musst Du "c:\daten\*.*" schreiben damit alle Dateien gemeint sind!

Sicherungsverzeichnis =
"I:\safety"
Hier "I:\safety\" am ende wird der Backslash noch benötigt

Wie kann man das Skript aus einer Batch -
Datei afrufen?
Das ging doch mit irgendeiner exe und dem
Skript als Parameter, oder?
Wie lautet die EXE, die ich starten
müßte?

Und zum Aufrufen brauchst du keine Batchdatei kann man so aufrufen (Doppelklick oder in der cmd einfach Dateiname.vbs).

Gruß MCSE_Cheffe
Bitte warten ..
Mitglied: CrazyCat-1
16.11.2006 um 10:39 Uhr
Also für nur dfd - Dateien anstelle des *.* ein *.dfd

Das Skript soll in eine Batch - Datei integriert werden, deshalb die Frage.
Bitte warten ..
Mitglied: MCSE-Cheffe
16.11.2006 um 10:46 Uhr
Hi,

mit *.* = alle oder natürlich *.dfd für deine stimmt.

In einer Batchdatei z.B.

@echo off
c:\Dateiname.vbs
exit

Gruß MCSE_Cheffe
Bitte warten ..
Mitglied: CrazyCat-1
16.11.2006 um 10:51 Uhr
So einfach funktioniert das auch?

Ich habe immer mit irgendwelchen wscript.exe, cscript.exe usw. gearbeitet.

Werde das gleich mal probieren, das wäre um einiges einfacher.
Bitte warten ..
Mitglied: bastla
16.11.2006 um 10:54 Uhr
Hallo CrazyCat!
Oder vielleicht doch Batch:
01.
for %%i in (C:\Daten\*.dfd) do if %%~zi LSS 100 copy /y "I:\safety\%%~nxi" c:\daten >nul 2>nul
HTH
bastla

[Edit] Sorry Biber, war geringfügig schneller, weil Du's schöner und gleich richtig gemacht hast [/Edit]

[Edit2] So versteh' ich's inzwischen auch [/Edit2]
Bitte warten ..
Mitglied: Biber
16.11.2006 um 10:55 Uhr
Moin CrazyCat,

Als Batch wiederum würde das so aussehen:
01.
:: ------snipp RestoreIfUpdateFailed.bat 
02.
@for %%i in (c:\Daten\*.dfd) do @if exist i:\Safety\%%~nxi @if %%~zi LSS 100 @ECHO copy /y i:\Safety\%%~nxi %%i >nul 
03.
:: ------snapp RestoreIfUpdateFailed.bat
[Der Batch ECHOed im Moment nur, was er tun würde. Nach dem Testen das @ECHO entfernen.

Gruß
Biber
[Edit] @bastla
Uuups... ich habe es genau umgekehrt herum verstanden:
AUS dem Sicherungsverzeichnis "I:\Safety" die Daten wiederherstellen IN das Datenverzeichnis c:\Daten.....?!?

[Edit2] Passt schon... war nur optisch irreführend.. [/Edit2]
[/Edit]
Bitte warten ..
Mitglied: CrazyCat-1
16.11.2006 um 11:38 Uhr
Danke!

Werde beide Varianten sofort ausprobieren und die schnellere davon verwenden.

Das Skript funktioniert mittlerweile schon, braucht aber eine gute Minute bis die Dateien überprüft wurden.

Vielleicht ist die Batch - Lösung etwas schneller.

Btw. im Skript ist ein kleiner Fehler.
Beim 2. Copy müssen die Verzeichnisse umgedreht werden, ansonsten werden die Dateien 2x in das gleiche Verzeichnis kopiert.
Bitte warten ..
Mitglied: MCSE-Cheffe
16.11.2006 um 11:49 Uhr
Hi,

bei dem zweitem Copy habe ich beim ersten Beitrag einen Kommentar dahinter geschrieben das die Pfade dort angepasst werden müssen.
Das war mir schon klar das das so nicht ganz stimmt darum der Kommentar.

Gruß MCSE_Cheffe
Bitte warten ..
Mitglied: CrazyCat-1
20.11.2006 um 15:05 Uhr
Kann man beim VB - Skript irgendwie das Fenster "Datei nicht gefunden" unterdrücken und das Skript ohne Bestätigung zum weiterlaufen zu bewegen?

Das Fenster erscheint gelegentlich beim Ausführen der Zeile 18 des Skritps.
Bitte warten ..
Mitglied: Biber
24.11.2006 um 17:09 Uhr
Moin CrazyCat,

MSCE_Cheffe scheint grad nicht in der Nähe zu sein.
Kannst Du bitte mal den aktuellen Stand des VBS-Schnipsels posten bitte?
Dann können wir eben noch diesen Schönheitsfehler wegschmirgeln und danach den Beitrag mal schließen.

Falls Du den Fehler inzwischen selbst behoben hast, stell das Musterskript doch bitte trotzdem hier rein.

Danke
Biber
Bitte warten ..
Mitglied: CrazyCat-1
29.11.2006 um 19:41 Uhr
Sobald ich wieder am Firmen - PC bin, schick' ich dir das Skript.

Kann etwas dauern, da ich derzeit meinen Resturlaub verbrauche. (Hatte bisher noch nicht eine Woche Urlaub, deshalb hab' ich noch 6 Wochen Urlaub gut)
Bitte warten ..
Mitglied: Biber
30.11.2006 um 06:22 Uhr
Moin KratzeKater,

diesen Algorithmus, mit dem Du Deine 6 Wochen Resturlaub noch in 2006 nehmen kannst, hätte ich auch gern - hab dasselbe Problem...

Ansonsten lass Dich dich durch den den kleinen Bätch nicht stressen. Ich lass den Beitrag offen bis zu Deiner Rückmeldung.

Liebe Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Dateien mit Teil des Dateinamen per Batch in Unterordner verschieben (14)

Frage von smitternacht zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...