Ho uno script che include le seguenti impostazioni che restituiscono un risultato errato se utilizzo la schermata dei parametri obbligatori. Sembra che non riesca a fare qualche tipo di verifica del tipo o di casting sul mio input. Come posso risolverlo?Powershell obbligatorio bool sempre true
param ([Parameter(Mandatory=$true)] [bool]$autoinstall)
if ($autoinstall )
{
echo "Autoinstall true"
}
else
{
echo "Autoinstall false"
}
Questo funziona perfettamente se lo chiamo io con. \ MyScript.ps1 -autoinstall $ false ma la variabile $ autoinstall è sempre vero indipendentemente da ciò che mi passa se uso la richiesta di password obbligatoria ed entro '$ false' .
EDIT:
Utilizzando un interruttore non funziona per me. Ho davvero bisogno di avere sia script sia la funzione parametrica obbligatoria per le scorciatoie utente per uso immediato.
Questo non funziona per me. Devo inviare una singola scorciatoia che utilizza una serie di parametri obbligatori per controllare il comportamento dell'app. Ho avuto una nota in tal senso nella versione originale del mio post .. La modificherò di nuovo. –
Oggi mi sento un po 'stupido, perché non riesco a capire il problema :) Un interruttore è un booleano obbligatorio. O lo specifichi o non lo fai, e in uno script puoi specificare il suo valore. L'interruttore è perfetto nei miei occhi. Vedere la sezione di output aggiornata nella mia risposta per proof-of-concept. –
Lo script deve essere in grado di essere chiamato, indipendentemente dagli altri parametri della riga di comando che sono già presenti sul collegamento, e richiedere tramite un parametro obbligatorio la visualizzazione di un valore. Prova il tuo script con un parametro obbligatorio per lo switch e non inserire un valore nella riga di comando. Vedrai di cosa sto parlando. –