Fonction avec un paramètre non obligatoire
Bonjour,
Je suis nouveau dans le powershell.
J'aimerais construire une fonction avec 2 paramètres obligatoires et 1 paramètre qu'il n'est pas obligatoire de saisir.
Champs obligatoires :
- varDriveName
- varMappingPath
Champ pas obligatoires :
- Persist
J'ai trouvé un contournement mais c'est pas vraiment propre car a chaque fois que j'appel la fonction, je dois tagger le "y" ou le "n" pour savoir si le lecteur va être persistant ou non.
Appel de la fonction pour un lecteur persistant : "MountNetworkDrive u \\xxx\mypath y"
Appel de la fonction pour un lecteur non persistant : "MountNetworkDrive u \\xxx\mypath n"
L'idée, ca serait de pouvoir enlever le paramètre quand j'ai pas besoin d'un lecteur persistant et de mettre -persist quand j'ai besoin d'un lecteur persistant et si possible dans le code d'enlever le IF qui test si le paramètre persist égal "y" ou "n" car c'est pas très beau.
Exemple de l'appel:
Appel de la fonction pour un lecteur persistant : "MountNetworkDrive u \\xxx\mypath -persist"
Appel de la fonction pour un lecteur non persistant : "MountNetworkDrive u \\xxx\mypath"
Exemple du code de la fonction:
New-PSDrive $DriveName -PSProvider FileSystem -Root $varMappingPath $Persist
Merci d'avance :)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
function CreateNetworkDrive{
<#
.SYNOPSIS
Function who create a network drive for a specific repository.
.FUNCTIONALITY
Network Drive
.DESCRIPTION
Function who create a network drive for a specific repository
.PARAMETER varDriveName
Name of the network drive you want to mount
.PARAMETER varMappingPath
Full path to the directory you want to mount
.PARAMETER Persist
Fill 'y' or 'n' if you want a persistent network drive or not
#>
PARAM
(
[string] $varDriveName,
[string] $varMappingPath,
[string] $Persist
)
if($Persist -eq "y"){
New-PSDrive $DriveName -PSProvider FileSystem -Root $varMappingPath -Persist
}
elseif ($Persist -eq "n"){
New-PSDrive $DriveName -PSProvider FileSystem -Root $varMappingPath
}
else{
DisplayLog "Operation failed"
}
} |