Supponi di essere un amministratore di sistema che utilizza PowerShell per gestire molte cose sui suoi sistemi.Carica tutte le funzioni in PowerShell da una determinata directory
Probabilmente hai scritto un sacco di funzioni che fanno cose che devi controllare regolarmente. Tuttavia, se devi muoverti molto, usare diverse macchine molto e così via, dovrai reinserire tutte le tue funzioni ancora e ancora per poterle usare. Devo anche farlo ogni volta che esco e riavvio PowerShell per qualche motivo, in quanto non ricorderà le funzioni ...
Ho scritto una funzione che fa questo per me. Sto postando qui perché voglio essere sicuro che sia infallibile. La funzione stessa è memorizzata in allFunctions.ps1
, motivo per cui l'ho escluso nel codice.
L'idea di base è che si dispone di una cartella in cui si archiviano tutti i file PS1 che includono ciascuno una funzione. In PowerShell, si va a quella directory e poi si entra:
. .\allFunctions.ps1
Il contenuto di questo script è questo:
[string]$items = Get-ChildItem -Path . -Exclude allFunctions.ps1
$itemlist = $items.split(" ")
foreach($item in $itemlist)
{
. $item
}
Questo script prima di raccogliere tutti i file nella directory, che significa tutto non file ps1 che potresti avere anche lì. allFunctions.ps1 sarà escluso.
Quindi ho diviso la stringa lunga in base allo spazio, che è il separatore comune qui. E poi lo percorro con un ciclo Foreach, ogni volta inizializzando la funzione in PowerShell.
Supponiamo che tu abbia più di 100 funzioni e non sai mai di quali avrai bisogno e quale no? Perché non li inserisci tutti al posto del pignolo?
Quindi mi chiedo, cosa può andare storto qui? Voglio che questo sia veramente sicuro, dato che probabilmente lo userò molto.
Cose stupende, non lo sapevo su PowerShell. – KdgDev