26 Aug
if errorlevel hilft beim Batchscripting um Fehler während der Ausführung eines Befehls abzufangen. Hier verbirgt sich aber ein Anfängerfehler, über den jeder mal stolpert.
Ein Befehl, der ausgeführt wird, gibt normalerweise einen Wert zurück, wenn er fertig ausgeführt wurde. Dieser Rückgabewert ist normalerweise 0, wenn der Befehl erfolgreich ausgeführt wurde. Fehler werden mit einem positiven Rückgabewert ungleich 0 angegeben. Viele Programme haben für verschiedene Fehler auch verschiedene Rückgabewerte, diese muss uns aber nicht weiter interessieren.
Mit if errorlevel fragen wir den Rückgabewert des zuvor ausgeführten Befehls ab.
Ein Beispiel:
md c:\checkdir if errorlevel 0 echo Test
Was macht diese Befehlskombi? Man könnte denken der Rückgabewert von md (makedir – Verzeichnis erstellen) wird geprüft und wenn der Befehl erfolgreich ausgeführt wurde (errorlevel 0) dann wird “Test” ausgegeben.
Stattdessen wird aber immer “Test” ausgegeben, egal ob der Befehl erfolgreich ausgeführt wurde oder nicht. Warum?
Geprüft wird nicht if errorlevel = X sondern if errorlevel >= X! Demzufolge prüft if errorlevel 0 nicht nur auf den Wert 0 sondern prüft mit >= 0 auch alle Werte, die größer sind als 0.
Das heißt egal ob ein Programm 0 zurück gibt, 1 oder 213, der Befehl hinter if errorlevel 0 wird immer ausgeführt.
Korrekt müsste es lauten:
md c:\checkdir if errorlevel 1 goto fehler echo befehl erfolgreich :fehler echo befehl nicht erfolgreich
Alle Rückgabewerte >= 1 (nicht erfolgreich) werden nun also an die “fehler” Sprungmarke geschickt. Der Ablauf des erfolgreichen Programmteils erfolgt normal unter der errorlevel Abfrage.
18 Aug
Die IP-Einstellungen einer Netzwerkverbindung nicht von Hand sondern mit einem Batch Script machen zu lassen kann mehrere Vorteile haben. Natürlich schließt man dadurch Tippfehler aus und spart auch ein wenig Zeit aber sinnvoller ist der Einsatz bei mehreren Standorten mit unterschiedlichen IP-Einstellungen, zwischen denen man selber oder ein Kollege pendelt. Die IP Settings eines jeden Standorts lassen sich dann einfach per Doppelklick übernehmen.
Hier ein Beispiel Batch Script:
netsh interface ip set address "LAN-Verbindung" static 192.168.178.44 255.255.255.0 192.168.178.1 256 netsh interface ip set dns "LAN-Verbindung" static 192.168.178.10 PRIMARY netsh interface ip set dns "LAN-Verbindung" static 192.168.178.11 index=2
Achtung: Hier müssen also Name der Netzwerkverbindung und natürlich die Adressen angepasst werden.
Mit diesem Script werden an der Netzwerkverbindung “LAN-Verbindung” folgende Einstellungen übernommen:
IP-Adresse: 192.168.178.44
Subnetzmaske: 255.255.255.0
Gateway: 192.168.178.1
Gateway-Metrik: 256
DNS 1: 192.168.178.10
DNS 2: 192.168.178.11
Für DHCP bei den IP- als auch den DNS-Einstellungen einfach folgende Zeilen verwenden:
netsh interface ip set address "LAN-Verbindung" dhcp netsh interface ip set dns "LAN-Verbindung" dhcp
Für Informationen zu den aktuellen Einstellungen reicht der Befehl netsh interface ip show config oder ganz klassisch ipconfig /all.
27 Jul
Umlaute in Batch-Script Ausgaben sind ja ein bekanntes Problem. Statt ä ö ü oder auch ß erscheinen leider nur sehr kryptische Symbole, dabei kann das aktuelle DOS doch umlaute darstellen.

Aber wie bekommen wir eine makellose Ausgabe am besten realisiert?
Ganz einfach, ihr braucht ein Texteditor, der MS DOS schreiben kann.
Zum Beispiel kann Notepad++ ein Dokument im MS DOS Stil bearbeiten. Dazu könnt ihr einfach die Bearbeitungssprache unter Sprachen -> M -> MS DOS Stil einstellen.
Das Script wird unter Umständen neu geöffnet, die Syntaxgestaltung verschwindet und alle Umlaute (mit dem ß) werden in kryptische Zeichen umgewandelt. Nun könnt ihr alle diese seltsamen Symbole durch die gewollten Umlaute ersetzen.

In der Ausgabe werden diese dann auch endlich normal angezeigt.

Ihr könnt dann in Notepad++ die Sprache wieder auf Batch zurückstellen. Und – bei mir war es zumindest so – danach sollten sogar in dieser Spracheinstellung eingetippte Umlaute korrekt angezeigt werden. Testet es aus.
5 Jun
Jetzt funktioniert der Passwortstärke Analyzer endlich so, wie er soll. Ein Fix von Ahmet hat das Problem behoben, dass die Passwortüberprüfung nach Anzeigen/Verstecken des Passworts beendet hat.
Details:
Jetzt gibt es 2 Eingabefelder, 1 ist jeweils versteckt. Ein Feld ist vom Typ password und eins vom Typ text. Denn durch das Ersetzen des Eingabefeldes mit replaceWith() oder html() ist auch automatisch der Link zu den Events verloren gegangen. Das Problem wird damit behoben, guter Gedankengang.
Ich sehe das trotzdem als Manko schließlich kann ich mir viele Situationen vorstellen wo viel HTML Inhalt ersetzt werden muss, danach diese eingesetzten Inhalte aber dynamisch verlinkt sein müssen. Ich glaube über diese Thematik werde ich noch öfter stolpern. ![]()
Ich hab den Code entsprechend mit Credits versehen.
Neuer Codeanfang der passwort.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $(document).ready(function() { $("input[type=checkbox]:first").change(function(){ /* Made by Ahmet Topal * http://basicblogger.de/ */ var nopw = $("#passwrap input:not(.pw)").attr('id'); var pw = $("#passwrap input.pw").attr('id'); $("#"+nopw).addClass('pw').fadeIn(0); $("#"+pw).removeClass('pw').fadeOut(0); }); $("#passwrap input").keyup(function() { /* Made by Ahmet Topal * http://basicblogger.de/ */ var passtemp = $('#passwrap input.pw').val(); $("#passwrap input:not(.pw)").val(passtemp); ratePW(); }); |
Auch die .css und .html haben sich leicht verändert, bitte beachten!
5 Jun
So, mein letzter Post ist ohne Beispiel gekommen. Das hatte den Grund, dass ich noch einen Bug in dem Tool war.
Das “Passwort anzeigen” unterbricht die Analyse Funktion. Einmal betätigt wird das Passwort nicht weiter bewertet. Das hat sicher mit dem Austausch des HTML Inhalts zu tun. Ich habe bereits html() und replaceWith() probiert. Denke mal ich brauche da eine ganz andere Herangehensweise. @Ahmet, noootfalls nehme ich das showPassword Plugin
Soo, ich habe es nicht gefixt bekommen bis jetzt ![]()
Egal, hier ist es: jQuery Passwortstärke Analyzer
