Verzeichnispfad zu Powershellskript ermitteln

Für den Aufruf von Exe-Dateien oder das Einbinden von Dll-Bibliotheken muss man häufig den Verzeichnispfad des aktuell ausgeführten Skriptes kennen. Das folgende Skript liefert genau diesen zurück:

1
2
3
4
$strPfad = [System.Management.Automation.InvocationInfo]$myInv=$myInvocation
$strPfad = $myInv.get_MyCommand().Definition
$strPfad = Split-Path $strPfad -parent
Write-Host $strPfad

Oder:

1
Split-Path -parent $MyInvocation.MyCommand.Definition

Verzeichnis mit aktuellem Datum erstellen

Für Protokolle oder Sicherungen benötigt man immer wieder Verzeichnisse die täglich neu angelegt werden und die das aktuelle Datum enthalten.
Das folgende Skript legt ein Verzeichnis im folgenden Format an: Backup_Jahr-Monat-Tag, also z.B. “Backup_2009-02-10″

Batch-Skript:

1
2
3
4
5
SET Jahr=%date:~-4%
SET Monat=%date:~-7,2%
SET Tag=%date:~-10,2%
 
mkdir "Backup_%Jahr%-%Monat%-%Tag%"

Nach Dateinamen in Verzeichnis filtern

Schon mal in einem Verzeichnis mit vielen Dateien und unterschiedlichen Dateitypen nach bestimmten Dateien gefiltert?
Mit dem Cmdlet “Get-Childitem” geht da einiges, wie ich bereits in meinen Beiträgen “Alle Dateien anzeigen außer bestimmte Typen“, “Das Commandlet “Get-Childitem”” und “Rekursive Dateisuche mit Filter und Sortierung” gezeigt habe.

Möchte ich einfach nur alle Dateien anzeigen die mit “d”, “e”, oder “x” beginnen, so geht das wie folgt:

1
Get-Childitem C:\Windows\[dex]*.*

Oder bei Folgen (z.B. d bis k und x) von Buchstaben so:

1
Get-Childitem C:\Windows\[d-kx]*.*

Das “*.*” am Ende könnte z.B. mit “*.txt” den Filter bzw. die angezeigten Dateien weiter einschränken.