2. March 2011: Ein Bildschirm wie im Film

Was tut man am besten um sich in eine Sprache einzuarbeiten? Richtig! Kleine, meist unnütze Applikationen schreiben. Zum Beispiel ein Skript, dass den Inhalt von Dateien anzeigt – ganz so wie es einem in vielen Filmen und TV-Serien täglich gezeigt wird.

$text_types = ".bat", ".reg", ".kix", ".ps1", ".java", ".txt", ".xml", ".html", ".c"
$sleep_time = 150
$max_size = 4 * 1024 * 1024

function Get-HexDump($path){
	$width = 15
	Get-Content -encoding byte $path -readCount $width -totalCount $max_size | ForEach-Object {
		$characters = $_
		if (($characters -eq 0).count -ne $width){
			$hex = $characters | ForEach-Object {
				" " + ("{0:x}" -f $_).PadLeft(2,"0")
			}
			$char = $characters | ForEach-Object {
				if ([char]::IsLetterOrDigit($_))
					{[char] $_ }else{ "." }
			}
			"$hex $char"
			start-sleep -milliseconds 10
		}
	}
}

foreach ($i in Get-ChildItem . -recurse) {
	if (!$i.PSisContainer) {
		if($text_types -contains $i.Extension){
			get-content $i.fullname | foreach-object { echo $_; start-sleep -milliseconds $sleep_time }
		}else{
			#Get-HexDump($i.fullname)
		}
	}
}

Richtig professionell wird es allerdings erst mit der Hex-Anzeige für binäre Dateien (oder, um genau zu sein, nicht-definierte Datei-Endungen). Die Entsprechende Funktion habe ich auf PowerShell.com gefunden.

Unnützes PowerShell-Skript bei der Arbeit

Wer mag darf es sich gerne herunterladen. Falls man sich mit der PowerShell beschäftigen will (was ich jedem IT’ler mit Windows-Kontakten nur nahelegen kann), sollte allerdings versuchen es selbst umzusetzen. Man lernt dabei eine Menge!