Ich hatte letztens mal drüber geschrieben: mit erweiterten Stringoperationen kommt man leicht an Dateinamen, Endung, Ordner, Pfade, Dateieigenschaften und Ähnliches.

Ich möchte gerne die Aussagen und den Code korrigieren. Ich hatte folgendes vorgeschlagen:
Dieser Code ist unsicher, lest weiter unten für einen zuverlässigeren Code!

:: nur der Dateiname (ohne .ext)
for %%a in (C:\test\geheim.txt) do set 1=%%~na
:: -> geheim
:: funktioniert auch mit Ordnern
for %%a in (C:\test\ziemlich\geheim) do set 1=%%~na
:: -> geheim

Letzte Datei und Ordner lassen sich so herausfinden. Ist auch korrekt, hat aber 2 Fehlerpotentiale:

Man sollte natürlich den Pfad, den man auswertet, in Gänsefüße stecken! Ansonsten gibt es nämlich Fehler sobald der gesuchte letzte Part (Dateiname/Ordnername) ein Leerzeichen enthält. Bei erweiterten Stringoperationen mit FOR sollte man doppelte Gänsefüße verwenden obwohl man sonst ja bei FOR Befehlen einfache nutzen sollte. Hier kommt es teilweise aber vor, dass im Ergebnis ein einfaches mit reingerät (“ geheim‘ „), was nicht gewollt ist. Doppelte Anführungsstriche sind hier zuverlässiger.

Ebenfalls wird es problematisch wenn man den letzten Ordnernamen sucht und dieser aber ein Punkt enthält („C:\Windows 3.1\“). For erkennt den Punkt und denkt, dass es sich um eine Datei handelt. Also gibt der Befehl „Windows 3“ zurück, dabei soll es „Windows 3.1“ zurückliefern.

Lösung:

:: Datei mit Anführungsstrichen und %%~n suchen!
for %%a in ("C:\test\geheim.txt") do set 1=%%~na
:: -> geheim
:: den letzten Ordner immer mit Anführungsstrichen und %%~nx suchen!
for %%a in ("C:\test\ziemlich\geheim 9.1") do set 1=%%~nxa
:: -> geheim

Glücklicherweise bin ich in den Genuss eines Diablo 3 Beta Keys gekommen und versuche deswegen seit dem Wochenende jede freie Minute meiner wertvollen Zeit mit Diablo 3 zu verschwenden 😉 Das klappt gut, wenn sich denn mal freie Zeit findet.
Leider konnte ich „nur“ etwa 2-3 Stunden in der letzten Woche investieren aber der erste Eindruck steht. Und der ist positiv!

Anfangs habe ich mir Sorgen gemacht, dass durch die grafischen Verbesserungen des Spiels gegenüber dem Vorgänger die Geschwindigkeit des Hack’n’Slays abnimmt. Bei moderneren RPGs weicht das Gameplay ja oft der Grafik. Ich erinnerte mich an Monsterscharen und Schlachtfelder aus dem Chaos-Sankturium (Akt 4) oder dem halben Akt 5 und sah teilweise recht spärliche Gegnergrüppchen in den Video-Previews von D3.
Diese Sorgen verflogen jedoch sehr schnell. Das Tempo nimmt im Laufe des ersten Aktes sehr schnell zu.

Die erste Stunde (wenn man nicht gerade rusht) ist, wie auch in Diablo 2 schon, erstmal zum Einspielen gedacht. Wie funktioniert das neue Charaktersystem, wie geht man mit den Skills um, Gameplay schnüffeln halt.
Doch schon in den unteren Leveln der Kathedrale, also ab Level 2, beginnt der Spaß von Diablo 3 exponentiell anzusteigen. Je nach Gameplay hat man diese Stelle des Spiels nach 30-120 Minuten erreicht. Hier ist das Charakterlevel bereits zwischen 7 und 11, die Skills optimiert und das Gameplay flüssig, Gegnerscharen gibt es hier auch ausreichend.

Der Boss des ersten Aktes, der Skeleton King, ist herausfordernd für einen neuen Charakter. Eine gute Abwechslung zum ansonsten viel zu einfachen Schwierigkeitsgrades des ersten Aktes. Allerdings sollte das auf die Beta zurückzuführen sein, diese soll extra leicht konstruiert sein und wird in der finalen Version hoffentlich etwas herausfordernder gestaltet.

Jetzt gilt es also das Gameplay der unterschiedlichen Charaktere zu testen und alle Ecken und Enden des Spiels schonmal anzukratzen. Da mir die Zeit fehlt habe ich mir bereits ein paar Gameplayvideos der Charakterklassen angesehen, als Vorgeschmack. Viele Videos aller Klassen findet man jetzt schon im Netz. Besonders schmackhaft sind allerdings die Videos eines (anscheinend) Pro-Spielers, dessen Youtube Account MrTidus1492 heißt. Er hat einige sehr spektakuläre Videos zu bieten.
Man achte auf eher weniger populäre Klassen wie Witch Doctor oder Monk, die gehen derbe ab!

Hier also ein paar coole Gameplay Videos:

Totenbeschwörer – Kombo Hunting, 1800Exp

Mönch – Level 13 Gameplay

Zauberer – Level 13 Gameplay

Barbar – Dual-Wield Frenzy (war auch ein guter D2 Build)

Guter Co-Op Speedrun
Die Beta zu zweit in 17 Minuten durchgespielt… krass

Ach und btw: 7 Vor- und Nachteile von Diablo 3, lustig geschrieben. D2 Spieler werden hin und wieder lächeln.

Die Windows 8 Metro UI… das Internet hasst und liebt es, gleichzeitig. Es gibt ein Tool, dass beide Gruppen nutzen können. Es kann sowohl den Metro Start Screen mit Power Options und beliebige Programme als Apps füllen als auch die komplette Metro UI deaktivieren.

Metro UI Tweaker:
Führt den Installer als Administrator aus und bestätigt die Änderungen am System (.NET Framework 3.5 und Windows Updates).
Mit dem Programm kann man die Metro UI teilweise oder komplett deaktivieren und Power Options als Apps dem Start Screen hinzufügen.
Ebenfalls lassen sich beliebige Programme als App-Kacheln hinzufügen. Ausnahmen wie cmd.exe bestätigen die Regel, das funktioniert nicht.

Intro

Ziel soll es sein, mittels eines „Batch Ping Skripts“ die Erreichbarkeit eines Server/Clients zu testen. Dabei wird der Ping-Befehl benutzt, welcher mit Hilfe von ICMP-„Echo Request“-Paketen ein Netzwerkgerät kontaktiert und für gewöhnlich eine Antwort von diesem erhält. Die Antwort kann dann in Form von errorlevel automatisiert ausgewertet werden um die Erreichbarkeit anzugeben. Aber: Beim Batch Erreichbarkeits-Test mittels Ping gibt es Details, die beachtet werden müssen – der errorlevel kann trügen.

Technische Hintergründe

Die normale ICMP-Anfrage via CMD kann 3 verschiedene Ergebnisse erzeugen:
Normaler ping ohne Parameter von 192.168.178.20 zu 192.168.178.88:
Zeitüberschreitung der Anforderung“ – der Client antwortet nicht und keine andere Vermittlungsstelle reagiert. Der Errorlevel ist 1.
Antwort von 192.168.178.13: Zielhost nicht erreichbar.“ – der Ziel-Client antwortet nicht aber eine andere Gegenstelle reagiert. Gateway, Router, Switch o.Ä. melden, dass dieser Client zwar im Netzwerk gefunden wird aber auf den Ping nicht reagiert, ihn nicht auflösen kann oder etwas in der Art. Der Errorlevel ist 0! Obwohl der Ziel-Client nicht erreichbar ist wird der Rückgabewert 0 für erfolgreich zurückgeliefert.
Antwort von 192.168.178.88: Bytes=32 Time<1ms TTL=128“ – die Ziel-Client ist erreichbar, der Errorlevel ist 0.

Lösung – Code

Möchte man die tatsächliche Erreichbarkeit des Ziel-Clients erfassen, ist folgender Weg nötig:

REM Aufteilen der IP für bessere Automatisierung mehrerer Clients eines Netzes
set ipnetz=192.168.178
set serverip=88
ping %ipnetz%.%serverip% -n 2 -w 1000 -l 2000
if %errorlevel%==1 echo Fehler

Mit -l wird die Größe des Ping Pakets bestimmt, -w bestimmt die Wartezeit in Millisekunden. Beide Parameter in Kombination sorgen dafür, dass der Ping nur noch eine Zeitüberschreitung oder einen Erfolg liefern kann. Das Verwenden von Errorlevel ist somit also sicher.

Alternative:

ping  %server_ip% -n 1 -w 1000 -l 2000 -4 | find /i "TTL" >nul 2>&1
if errorlevel 1 (
echo Server offline
) else (
echo Server online
)

via Kommentar von Gerd – funktioniert ebenfalls zuverlässig, optimiert mit dem -4 Parameter, danke Rudolph.
batch-ping-erreichbarkeit-online-test-script


Update: Überlegung: 2000 Byte Pakete mit einem maximalen Zeitlimit von 1000 Millisekunden… dadurch ist zwar ein Ping bei 2 gut angebundenen Clients entweder erfolgreich oder komplett nicht erfolgreich. Was passiert aber mit 2 sehr langsamen Clients? Wenn der Zielhost eigentlich erreichbar wäre aber es in 1 Sekunde nicht schafft auf das 2KB Ping Paket zu antworten. Wäre das dann ebenfalls negativ? Eine solche Situation ist wohl eher nicht üblich, wenn nicht sogar recht unwahrscheinlich, aber rein logisch könnte sie Probleme bereiten. Wer dazu Anmerkungen hat, bitte kommentieren!

Die Windows 8 Developer Preview ist Englisch. Coole Sache, allerdings bei Tastatureingaben hört der Spaß auf. So stellt man das Tastaturlayout auf Deutsch und ermöglicht auch die deutsche Touch Tastatur.

Control Panel -> More Settings -> Change Keyboards and other input methods -> Add a language -> [G]ermany (2x auswählen) -> (Germany anklicken) Move Up -> Advanced Settings

„Text input options“ -> German
Touch keyboard -> [X] „Enable the compatibiity touch keyboard“

Nun ist die deutsche Tastatur eingestellt und man kann auch die Layouts in der Touch Tastatur via Button wechseln.

Klingt einfach, hat aber einige Stolpersteine zu bieten.

Ich wollte Windows 8 in einer VM einrichten und testen.
Zuerst hatte ich noch VMware Player installiert, irgendeine alte Version, 2 oder 3 oder so. Neue VM erstellt, 2 Kerne, 3GB RAM, 30GB HDD. Die Minimalanforderungen sprechen von 1GHz, 1GB RAM (2GB für x64) und 16/20GB HDD.
Die Windows 8 ISO eingebunden und hochgefahren.
Bluescreen

HAL_INITIALIZATION_FAILED“ ist also der erste Fehler. Hier sehen wir auch gleich das neue Design eines Bluescreens. Dieser soll einfacher erkennbar machen, welcher Fehler aufgetreten ist. Stimmt, mehr als der Fehler und etwas statischer Text wird ja jetzt auch nicht mehr angezeigt.
Dieser Fehler kann einige Ursachen haben. In Verbindung mit Windows 8 und Virtualisierung gibt es allerdings nur wenige passende Erklärungen. Eine lautet: die Virtualisierungssoftware ist zu alt und kann den neuen Hardware Abstaction Layer von Windows 8 nicht ordentlich bedienen. Diese Seite behandelt den Fehler recht übersichtlich.

VMware Workstation 8 ist eine der neuen Virtualisierungssoftware, die Windows 8 beherrscht. Diese kann man 30 Tage lang kostenlos testen. Also download und dort den Spaß nochmal. ISO eingebunden, gestartet, ab in die Installation!
Doch schon am Anfang der Installation das nächste Problem:

Windows cannot read the setting from the unattend answer file.“ Welche unattend answer file?? Falsches Image? Nein, VMware Standardeinstellung glaube ich. Bin mir nicht sicher ob das bei anderen Virtualisierern auch kommt.
Jedenfalls müsst ihr die Einstellungen der VM öffnen und die Floppy Komponente verändern. Dort ist nämlich eine solche Antwortdatei eingestellt. Am besten einfach Floppy deaktivieren.

Nun startet auch die Installation endlich. Die Schritte sind direkt im neuen Metro Look. Regler lassen sich anklicken oder schieben. Warum Mini-Schieberegler wo man erstmal überlegen muss wie man ihn jetzt benutzt? Keine Ahnung, ich finds irgendwie unnötig. Checkboxen tun ihren Job seit Jahrzehnten.

Informationen an Microsoft senden?

Windows Live ID oder doch lokale Computeraccounts? Mit einer Windows Live ID werden Einstellungen, Apps und vieles mehr synchronisiert. Zudem wird SkyDrive direkt eingebunden glaube ich. Mehr dazu zum Beispiel hier. Ich werde allerdings alles lokal testen, soll fürs Erste reichen. Also unten auf das unscheinbare „Don’t want to log in with a Windows Live ID?“ geklickt.

Sobald die Installation durchgeklickt ist erscheint der neue Metro Startbildschirm. Hier werden Apps und Widgets aufgereiht und angezeigt. Über die Verwendung dieser neuen Oberfläche kann man etliche Posts schreiben. Davon gibt es aber schon genug im Netz.

Bei VMware sollte der nächste Weg die Installation der VMware Tools sein. Diese verbessern erfahrungsgemäß Kompatibilität und Performance der VM.

Das wars zur Installation in VMware. Nun gibt es in Windows noch viel zu tun. Schon die erste Stunde wirft viele Fragen auf und ich kam aus dem Grummeln gar nicht mehr raus. Aber dazu später mehr.

Memo an mich, Nutzer automatisch beim Start einloggen:

Via GUI

netplwiz

oder

control userpasswords2

starten.
Dann den Haken bei „Benutzer muss Benutzername und Passwort eingeben um den Computer benutzen zu können“ entfernen, Übernehmen, Passwort eingeben.

Funktioniert nicht bei Domänencomputern. Daher diese Alternative.
Via Registry

HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon

:
AutoAdminLogon = 1
DefaultUserName = testuser
DefaultDomainName = DOMAIN (optional natürlich)
DefaultPassword = g3h3!m
(alles Strings, die letzten 2 müssen selber erstellt werden)

Bei Windows 8 funktioniert das ebenfalls, gleicher Registry Key/Pfad, gleicher netplwiz Wizard, gleiches Verfahren.

Erledigt!