J'ai un fichier .ps1 dans lequel je veux définir des fonctions personnalisées.
Imaginons que le fichier s'appelle MyFunctions.ps1, et que son contenu soit le suivant :
Write-Host "Installing functions"
function A1
{
Write-Host "A1 is running!"
}
Write-Host "Done"
Pour exécuter ce script et théoriquement enregistrer la fonction A1, je navigue vers le dossier dans lequel réside le fichier .ps1 et j'exécute le fichier :
.\MyFunctions.ps1
Ces sorties :
Installing functions
Done
Pourtant, lorsque j'essaie d'appeler A1, j'obtiens simplement une erreur indiquant qu'il n'existe pas de commande/fonction de ce nom :
The term 'A1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:3
+ A1 <<<<
+ CategoryInfo : ObjectNotFound: (A1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Je dois mal comprendre certains concepts de PowerShell. Ne puis-je pas définir des fonctions dans les fichiers script ?
Nota que j'ai déjà défini ma politique d'exécution sur 'RemoteSigned'. Et je sais qu'il faut exécuter les fichiers .ps1 en plaçant un point devant le nom du fichier : . \myFile.ps1
0 votes
Bon lien sur le chargement des fonctions au démarrage du PS : sandfeld.net/powershell-load-your-functions-at-startup