Comment obtenir le Parent du répertoire parent dans Powershell?
Donc, si j'ai un répertoire stocké dans une variable, par exemple:
$scriptPath = (Get-ScriptDirectory);
Maintenant, je voudrais trouver le répertoire deux parent niveaux.
J'ai besoin d'une belle façon de faire:
$parentPath = Split-Path -parent $scriptPath
$rootPath = Split-Path -parent $parentPath
Puis-je obtenir la rootPath en une seule ligne de code?
Vous devez vous connecter pour publier un commentaire.
Version pour un répertoire
get-item
est votre coup de main ici.Si vous Voulez la chaîne seulement
Version d'un fichier
Si
$scriptPath
pointe vers un fichier, puis vous devez appelerDirectory
bien sur en premier, de sorte que l'appel devrait ressembler à ceciRemarques
Cela ne fonctionnera que si
$scriptPath
existe. Sinon, vous devez utiliserSplit-Path
applet de commande..parent
ne fonctionne que sur les objets de l'annuaire. Si j'ai un chemin d'accès à un fichier, et je veux trouver le parent du répertoire que le fichier est en cours, j'ai besoin d'utiliser(get-item $PathToFile ).Directory.parent
$scriptPath
existe. Sinon il suffit d'utiliserSplit-Path $scriptPath -parent
.Je l'ai résolu comme ceci:
On peut la découper en barres obliques inverses, et de prendre l'avant-dernier négatives sur le tableau d'indexation afin d'obtenir la grand-parent nom de répertoire.
Vous avez le double de la barre oblique inverse pour s'échapper dans la regex.
Pour obtenir le chemin d'accès complet:
Et, en regardant les paramètres pour le split-chemin, il prend le chemin de la construction d'un pipeline d'entrée, de sorte que:
Vous pouvez utiliser
pour obtenir le chemin de la chaîne ou si vous voulez le Répertoire type d'utilisation:
Dans PowerShell 3,
$PsScriptRoot
ou pour votre question de deux parents,Vous pouvez tout simplement de la chaîne d'autant
split-path
que vous avez besoin:Si vous souhaitez utiliser $PSScriptRoot vous pouvez faire
En powershell :