vincy69
Goto Top

per Batch nur bestimmte Seiten einer Log Datei drucken?

Hallo allerseits,

ich habe per Batch einen täglichen Kopiervorgang von 3 je 2GB großen Dateien mit einem Dateiabgleich mit 'FC' eingerichtet, der automatisch eine Log Datei erstellt.
Diese Log Datei lasse ich nach Erstellung dann per Batch ausdrucken.
Bis hierhin funktioniert alles bestens.

Mein Problem ist nun, wenn beim Kopiervorgang irgendetwas schief gelaufen ist und dadurch Unterschiede festgestellt. werden, wird die Log Datei schnell über 1 GB groß.
Diese Grösse resultiert dann in einem hunderte von Seiten langen Ausdruck.

Ich möchte nun gerne den Ausdruck der Log-Datei dahingehend per Batch steuern, dass mir nur die ersten und letzten 2 Seiten ausgedruckt werden.

Gibt es da eine Möglichkeit mit 'Bordmitteln'?

Vielen Dank schon einmal für die Mühe.

Content-ID: 129868

Url: https://administrator.de/contentid/129868

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

60730
60730 20.11.2009 um 13:06:34 Uhr
Goto Top
Servus,

fc mag ich ja (wirklich - ohne Ironie) - aber bei 2 GB Dateien "hört" auch bei mir der Spass mit FC auf.

Bevor ich nun weitertexte - schreib doch mal dein bisheriges Script hier rein / Bitte in Code Blöcken - dann "sieht" man auch - was du meinst.

Ich vermute du parst den FC output in die Log?

Gruß
Biber
Biber 20.11.2009 um 13:30:40 Uhr
Goto Top
Moin vincy69,

versteh ich das richtig?
Du druckst am jedem dieser abzählbar wenigen Tage, die uns noch vergönnt sind, ungeprüft und per Batch im Idealfall drei, im Normalfall ein paar hundert Seiten eines FC-Abgleichs zweier GByte-großen Datenklötze???

Und für die globale Erderwärmung sind die riesigen Büffelherden verantwortlich, die über die endlosen Prärien traben?
Bzw. die großen Pinguinkolonien, die durch geselliges Kuscheln das ewige Eis zum Schmelzen bringen?

Hoffentlich ist bald Wochenende
...... und hoffentlich nicht vor dem Wochenende der Jüngste Tag...

Grüße
Biber
vincy69
vincy69 20.11.2009 um 15:39:15 Uhr
Goto Top
Mein Script sieht momentan folgendermassen aus:

@echo off

rem alte Sicherung aus Verzeichnis löschen
del F:\Pfad\*.fdb

now Start Sicherung

now Start Hotcopy

 
"C:\HotCopy.exe" source=C:\Dasi\HotCopy4Do.PAR  

now Ende Sicherung - Start WinZip
F:
cd F:\
now Zip 0
wzzip -a -ybc f:\4Donnerstag\HotCopy0.zip datei1     2>nul:
now Zip 1
wzzip -a -ybc f:\4Donnerstag\HotCopy1.zip datei2    2>nul:
now Zip 2
wzzip -a -ybc f:\4Donnerstag\HotCopy2.zip datei3    2>nul:

now Ende WinZip - Start Sum

rem Prüfsummen erzeugen
c:\dasi\sum.exe -s F:\datei1  >   c:\dasi\HotCopy4Do.sum
c:\dasi\sum.exe -s F:\datei2 >>  c:\dasi\HotCopy4Do.sum
c:\dasi\sum.exe -s F:\datei3 >>  c:\dasi\HotCopy4Do.sum

c:\dasi\sum.exe -s F:\4Donnerstag\HotCopy0.zip       >>  c:\dasi\HotCopy4Do.sum
c:\dasi\sum.exe -s F:\4Donnerstag\HotCopy1.zip       >>  c:\dasi\HotCopy4Do.sum
c:\dasi\sum.exe -s F:\4Donnerstag\HotCopy2.zip       >>  c:\dasi\HotCopy4Do.sum


now Ende Sum - Start Copy
if exist \\zielpfad\HotCopy*.zip del \\zielpfad\HotCopy*.zip

copy F:\4Donnerstag\HotCopy0.zip  \\zielpfad
now Copy 1
copy F:\4Donnerstag\HotCopy1.zip  \\zielpfad
now copy 2
copy F:\4Donnerstag\HotCopy2.zip  \\zielpfad

now Ende Copy ZIP - Start Copy Sum
if exist \\zielpfad\hotcopy4Do.sum  del \\zielpfad\bsi-sql$\hotcopy4Do.sum
copy C:\Dasi\HotCopy4Do.sum  \\zielpfad


dir \\zielpfad
now Ende Copy - Start Abgleich


fc /b f:\4Donnerstag\*.* \\zielpfad\*.*


now Ende Abgleich

Gestartet wird das ganze per automatischem Task mit folgenden Parametern:

C:\Dasi\HotCopy4Do.CMD > C:\Dasi\hotcopy4Do.log 2>&1


Wenn das alles gelaufen ist startet per automatischem Task folgende Batch:

print /d:\\bsi-apl1\TA4140L C:\Dasi\hotcopy4do.log

[Edit Biber] Wenigstens einen Codeblock mit Codetags sichtbar gemacht. [/Edit]
vincy69
vincy69 20.11.2009 um 15:41:08 Uhr
Goto Top
nee...

normalerweise sind es nur 2 Seiten.

Aber leider geht manchmal (so ca. 1 mal pro Monat) was schief beim kopieren und dann gibt der Drucker halt einen unnötigen Papierstapel aus.

Gruß, Vincy69
60730
60730 20.11.2009 um 15:54:02 Uhr
Goto Top
Servus,

jaja die Code blöcke...(hab doch extra was deswegen "verzapft"....)
Edit fragt ->Hab ich meinen Spruch mit "Biber mein Held" - heute schon gebracht?


for /f %%A in ('dir /B C:\Dasi\hotcopy4do.log') do set /a "logsize=%%~zA"   
if %logsize% LEQ 555 print /d:\\bsi-apl1\TA4140L C:\Dasi\hotcopy4do.log

Aber nur, weils gewünscht wurde.... und die 555 sind mal "geraten"
Imho "sollten" das ~2048 sein

Gruß
vincy69
vincy69 23.11.2009 um 09:32:25 Uhr
Goto Top
Hallo TimoBeil,

erst einmal ein grosses SORRY für das vergessen der Code Blöcke ....

Dann ein Danke Schön für die prompte Antwort.

Leider bekomme ich bei der Ausführung des Batches folgende Fehlermeldung:

"%%A" ist syntaktisch an dieser Stelle nicht verarbeitbar.  

Da ich nicht so fit bin mit den Batch Befehlen, bräuchte ich da noch mal einen kleinen Hilfe-Schub um das ganze ans laufen zu bekommen.

Dank und Gruß
60730
60730 23.11.2009 um 10:07:19 Uhr
Goto Top
Servus,

ich "tippe" mal auf folgendes....

if not exist C:\Dasi\hotcopy4do.log echo Test kann nicht vollzogen werden && pause
if exist C:\Dasi\hotcopy4do.log for /f %%A in ('dir /B C:\Dasi\hotcopy4do.log') do set /a "logsize=%%~zA"   
if %logsize% LEQ 555 print /d:\\bsi-apl1\TA4140L C:\Dasi\hotcopy4do.log

Gruß
vincy69
vincy69 15.02.2010 um 08:55:42 Uhr
Goto Top
Das ganze will nicht so recht funktionieren.

Daher habe ich den automatischen Druck abgeschaltet und gucke mir jetzt morgens die Log Datei an und starte den Druck dann manuell.
60730
60730 15.02.2010 um 10:20:40 Uhr
Goto Top
Moin,

bei einer Bädsch, in der kein @echo off / echo off drin ist und in der Set oder if gesetzt oder gefragt wird - stehen statt der %variablen% immer die damit gefütterten Werte in der Box.

if %logsize% LEQ 555
was steht denn da?
  • in der Batch?
  • im Output?
die 555 waren ja nur ein Beispiel