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
GELÖST

Kix - Finde Fehler nicht

Frage Entwicklung KiXtart

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

26.03.2006, aktualisiert 11.07.2006, 8065 Aufrufe, 4 Kommentare

Hallo,

ich habe hier ein kl. Script geschrieben:

01.
;Automatischer Zeilenumbruch 
02.
Break On; 
03.
 
04.
;Tab und Absätze definieren 
05.
$crlf=chr(13)+chr(10); 
06.
$tab=chr(9); 
07.
 
08.
;Liest die Zeilen aus C:\outlook.log 
09.
$pfad = Open (3,"C:\outlook.log"); 
10.
$pfadpo = ReadLine(3); 
11.
$pfadar = ReadLine(3); 
12.
 
13.
;Gibt die Userinfo's aus 
14.
$x = $x+ "Allg. Info's:" +$crlf; 
15.
$x = $x+ "  Netzwerk Username:" +$tab       +@USERID 		 		   +$crlf; 
16.
$x = $x+ "  User-Privillegien:" +$tab +$tab +@PRIV   		 		   +$crlf; 
17.
$x = $x+ "  Primäre Guppe:"     +$tab +$tab +@PRIMARYGROUP 		       +$crlf; 
18.
$x = $x+ "  Anmelde-Domaene:"   +$tab       +@LDOMAIN		 		   +$crlf; 
19.
$x = $x+ "  Login-SERVER:"	    +$tab +$tab +@LSERVER 	   + ".WYDLER" +$crlf;   
20.
$x = $x+ "  Workstation:"	 	+$tab +$tab +@WKSTA  		 		   +$crlf +$crlf; 
21.
 
22.
 
23.
;Liest die pst File aus 
24.
$x = $x+ "Outlook:" +$crlf; 
25.
$pstLocation = $pfadpo ; 
26.
$pstFileSize = getFileSize($pstLocation); 
27.
$pstSize 	 = $pstFileSize / (1024); 
28.
 
29.
 
30.
;Gibt eine Meldung aus, wenn Datei zu gross ist! 
31.
$x = $x + "   Persönlicher Ordner:" +$tab +$pstSize + " KB" +$crlf; 
32.
if $pstSize > 50000  
33.
 $error = $crlf +"  Ihr aktuelles Profil ist zu gross!!" +$crlf; 
34.
 $icon  = "48"; 
35.
else 
36.
 $icon = "64";  
37.
endif 
38.
 
39.
 
40.
$pstLocation = $pfadar; 
41.
$pstFileSize = getFileSize($pstLocation); 
42.
$pstSize 	 = $pstFileSize / (1024); 
43.
$x = $x + "   Archiv Ordner:" +$tab +$tab +$pstSize + " KB" +$crlf; 
44.
 
45.
$x = $x + $error; 
46.
$ok=messagebox($x,"Outlook - Information",$icon,0);
So sieht das Ergebnis aus:
e40cb3440542ae90e13ac8f4d07ae9d1-snap1 - Klicke auf das Bild, um es zu vergrößern

Da müssen eigentlich keine Nullen stehen!


So mit diesem Batch les ich den Speicherordner von der PST File aus:
01.
del "C:\outlook.log" 
02.
For /F "delims=" %%i in ('dir /s /b U:\Outlook.pst U:\archive.pst') do echo %%i >>C:\outlook.log 
In C:\outlook.log steht auch alles korrekt drinne. Habe mein Kixscript schon x mal durchgelesen. Find aber keinen Fehler! Vielleicht findet ihn von euch einer!


Gruß
Dani
Mitglied: gogoflash
28.03.2006 um 17:26 Uhr
Hi,

a)
erstmal würde ich die Semikolons aus dem Skript entfernen, diese sind zum Kommentieren da. Ändert an der Funktion des Skriptes nichts.
b)
Zum zweiten ist die Open Anweisung nicht richtig. $pfad = open geht nicht. Nur open Anweisung nutzen.
Statt $pfad= open(3,...) nur open(3,.....) ins Skript eingeben.
Dann geht es auch wieder .....

Mit $pfad=open(3,...) gibt dir Kix den Errorcode vom Open Kommando aus. Hier wäre er bei Existenz der Datei Null. Du willst aber keinen Errorcode sondern die Datei öffnen.

Ich würde eher über eine direkte Übergabe der Parameter ans KIX Skript gehen (ohne log Datei). Wie folgt:

c) Starten von KIX.
Mein Vorschlag wäre ohne Logdatei.
01.
FOR /F %%a in ('dir c:\archiv.pst /s /b') do (For /F %%i in ('dir c:\outlook.pst /s /b') do (kix32 test.kix $pfad=%%i $pfadar=%%a))
Damit übergeben wir direkt an das KIX-Skript die Pfade.

d) Das neue Skript sieht dann so aus :

Eigentlich wurden nur die Readline und Open Anweisungen gekillt, sonst keine wesentlichen Änderungen.

01.
;Automatischer Zeilenumbruch 
02.
Break On 
03.
 
04.
;Tab und Absätze definieren 
05.
$crlf=chr(13)+chr(10) 
06.
$tab=chr(9) 
07.
 
08.
;Gibt die Userinfo's aus 
09.
$x = $x+ "Allg. Info's:" +$crlf 
10.
$x = $x+ "  Netzwerk Username:" +$tab       +@USERID                     +$crlf 
11.
$x = $x+ "  User-Privillegien:" +$tab +$tab +@PRIV                       +$crlf 
12.
$x = $x+ "  Primäre Guppe:"     +$tab +$tab +@PRIMARYGROUP                +$crlf 
13.
$x = $x+ "  Anmelde-Domaene:"   +$tab       +@LDOMAIN                    +$crlf 
14.
$x = $x+ "  Login-SERVER:"        +$tab +$tab +@LSERVER        + ".WYDLER" +$crlf   
15.
$x = $x+ "  Workstation:"         +$tab +$tab +@WKSTA                      +$crlf +$crlf 
16.
 
17.
;Liest die pst File aus 
18.
$x = $x+ "Outlook:" +$crlf 
19.
$pstLocation = $pfadpo  
20.
$pstFileSize = getFileSize($pstLocation) 
21.
$pstSize      = $pstFileSize / (1024) 
22.
 
23.
;Gibt eine Meldung aus, wenn Datei zu gross ist! 
24.
$x = $x + "   Persönlicher Ordner:" +$tab +$pstSize + " KB" +$crlf 
25.
if $pstSize > 50000  
26.
 $error = $crlf +"  Ihr aktuelles Profil ist zu gross!!" +$crlf 
27.
 $icon  = "48" 
28.
else 
29.
 $icon = "64"  
30.
endif 
31.
 
32.
$pstLocation = $pfadar 
33.
$pstFileSize = getFileSize($pstLocation) 
34.
$pstSize      = $pstFileSize / (1024) 
35.
$x = $x + "   Archiv Ordner:" +$tab +$tab +$pstSize + " KB" +$crlf 
36.
 
37.
$x = $x + $error 
38.
$ok=messagebox($x,"Outlook - Information",$icon,0)
e) Nach Eindampfen einiger Variablen, entsteht eine leicht Verbesserte Fassung::

01.
;Automatischer Zeilenumbruch 
02.
Break On 
03.
 
04.
;Tab und Absätze definieren 
05.
$crlf=chr(13)+chr(10) 
06.
$tab=chr(9) 
07.
 
08.
;Gibt die Userinfo's aus 
09.
$x = $x+ "Allg. Info's:" +$crlf 
10.
$x = $x+ "  Netzwerk Username:" +$tab       +@USERID                     +$crlf 
11.
$x = $x+ "  User-Privillegien:" +$tab +$tab +@PRIV                       +$crlf 
12.
$x = $x+ "  Primäre Guppe:"     +$tab +$tab +@PRIMARYGROUP                +$crlf 
13.
$x = $x+ "  Anmelde-Domaene:"   +$tab       +@LDOMAIN                    +$crlf 
14.
$x = $x+ "  Login-SERVER:"        +$tab +$tab +@LSERVER        + ".WYDLER" +$crlf   
15.
$x = $x+ "  Workstation:"         +$tab +$tab +@WKSTA                      +$crlf +$crlf 
16.
$x = $x+ "  Pfad-Outlook.pst:"         +$tab +$tab +     $pfad                      +$crlf +$crlf 
17.
$x = $x+ "  Pfad-Archiv.pst:"         +$tab +$tab +     $pfadar                      +$crlf +$crlf 
18.
 
19.
;Liest die pst File aus 
20.
$x = $x+ "Outlook:" +$crlf 
21.
$pstSize  = getFileSize($pfad) / 1024 
22.
 
23.
;Gibt eine Meldung aus, wenn Datei zu gross ist! 
24.
$x = $x + "   Persönlicher Ordner:" +$tab +$pstSize + " KB" +$crlf 
25.
if $pstSize > 50000  
26.
 $error = $crlf +"  Ihr aktuelles Profil ist zu gross!!" +$crlf 
27.
 $icon  = "48" 
28.
else 
29.
 $icon = "64"  
30.
endif 
31.
 
32.
$pstSize = getFileSize($pfadar) / (1024) 
33.
$x = $x + "   Archiv Ordner:" +$tab +$tab +$pstSize + " KB" +$crlf 
34.
 
35.
$x = $x + $error 
36.
$ok=messagebox($x,"Outlook - Information",$icon,0) 
37.
 





Gruß Miguel



Do be continued......
Bitte warten ..
Mitglied: Dani
28.03.2006 um 21:38 Uhr
Hi,
Vielen Dank für deine Mühe. Jetzt gehts, aber frag mich nicht warum!
Wünsch dir noch was...


Gruß
Dani
Bitte warten ..
Mitglied: Biber
28.03.2006 um 22:18 Uhr
Moin Dani und gogoflash,

wenn es jetzt -ohne den Zwischenschritt des Schreibens in und Lesens aus einer Datei- klappt, dann kann es eigentlich nur daran gelegen haben, dass Pfadangaben mit Umlauten ("..\Persönlicher Ordner\..") bei den *.pst-Dateiei dabei waren UND und CMD.exe und diie Kix32.exe unterschiedliche Codepages benutzen.

Das obige Skriptchen läuft auch mit "..Persönlichen Ordnern\" etc, wenn vor dem FOR-Befehl des CMD-Interpreters ein "CHCP 1252" abgesetzt wird.

Aber das überarbeitete Skript sieht schon deutlich übersichtlicher aus.

Ändern würde ich aber die ersten beiden Zeilen:

;Automatischer Zeilenumbruch
Break On

...... denn die haben nichts miteinander zu tun...das ist verwirrend.

Und am Ende wird auf jeden Fall die Variable $error verarbeitet, obwohl die nur im Fehlerfall initialisiert ist ($x = $x + $error).

Das ist höchst gefährlich in ziemlich allen (auch Skript-) Sprachen - würde ich mir frühzeitig abgewöhnen. Ebenso die überflüssige Variable "$ok" unten. Wenn die letzte Messagebox keinen Rückgabewert verarbeitet, dann reicht doch ein einfaches "Messagebox( bla)" statt "$ok= Messagebox( bla)"

To be cont'd...

Gruß
Biber
Bitte warten ..
Mitglied: superboh
11.07.2006 um 02:49 Uhr
Kleiner Tip noch:

$crlf=chr(13)+chr(10)

Dafür kannst Du auch das Makro @CRLF verwenden.

Gruß,
Thomas
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...