Microsoft’s PowerShell est radicalement différent des coquilles sur UNIX ou des systèmes de Linux de GNU dans ce Powershell peut faire le commerce de des objets au lieu du juste texte simple.
Un exemple concret peut vous aider rapidement comprend plus la différence. Supposer que vous voulez obtenir et épargner des informations de tous les dossiers dans un certain sous-répertoire. Nous voulons obtenir non seulement les noms des dossiers mais autant de métadonnées comme relater possible à chaque dossier comme la date de création, la date de modification, etc. Ces informations ont aussi besoin d'être emmagasiné dans un document de XML seul. Pour garder la taille de cette poste maniable, notre sous-répertoire contient seulement deux dossiers, c.-à-d. dossier.xml et dossier.xsl, comme indiqués au dessous.
Un sur un UNIX ou le système de Linux de GNU, ceci serait une tâche un peu difficile rapidement pour accomplir. Powershell d'utilisation cependant il devient un simple un ou la tâche à deux lignes.
Parce que Powershell est fondamentalement objet-orienté, il considère un filesystem aussi l'être un representated d'objet qu'un emplacement exposé par le fournisseur. Plus généralement, un emplacement peut être un annuaire de dossier, une ruche de registre, un magasin de certificat ou quelque autre “thing” a exposé par un fournisseur. Le Powershell obtient-childItem cmdLet est utilisé pour rapporter des informations, y compris les métadonnées, des articles dans un emplacement spécifié. Ainsi obtient-childItem peut être utilisé pour beaucoup de types différents d'opérations y compris énumère les contenus d'annuaire, énumérant les valeurs de registre ou la démonstration des valeurs actuelles de variables. Pour nos buts, obtient-childItem expose des informations des dossiers dans un sous-répertoire spécifié ou l'annuaire actuel si aucun annuaire est spécifié.
Voici un manuscrit seul de Powershell de ligne qui fait que nous voulons faire. Il rapporte des métadonnées des deux dossiers dans l'annuaire actuel qui utilise l'obtient-childItem cmdLet, les tuyaux que les données à un cmdLet ont appelé ConvertTo-Xml qui dans le virage convertit les métadonnées dans un document de XML valide. La méthode d'arrêt est alors utilisée pour écrire ce ruisseau à un dossier dossier.hors appelé dans l'annuaire actuel. (obtient-childItem | ConvertTo-Xml -NoTypeInformation).save(“$(convert-path “X:”)\file.out”)
Comme alternative, nous pourrions emmagasiner les métadonnées rapportées dans une variable et l'écrivons alors hors à un dossier comme indiqué au dessous. Similaire pour cogner et ksh93, Powershell soutient le concept d'aliases et définit ls comme un des aliases pour l'obtient-childItem cmdLet, l'être de dir et gci l'autre deux. $a=(ls | ConvertTo-Xml) $a.save(“$(convert-path “X:”)\file.out”)
Voici les contenus de classe.hors. Comme vous pouvez voir, pas mal de d'informations de chacun des deux dossiers est exposé. <? La version xml = » 1,0" ?> <Objets> <Objet