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, 8113 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 ..
Ähnliche Inhalte
Windows Server
gelöst Login Script (kix) bei Windows Server 2012 R2 (6)

Frage von TechNoob17 zum Thema Windows Server ...

VB for Applications
gelöst VBA auch "Teilstrings" finden (1)

Frage von 94451 zum Thema VB for Applications ...

Batch & Shell
gelöst Nonsense Error - find ihn nicht. (Batch) (7)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...