Dans mon fichier de commandes, j'appelle le script PowerShell comme ceci:
powershell.exe "& "G:\Karan\PowerShell_Scripts\START_DEV.ps1"
Maintenant, je veux passer un paramètre de chaîne à START_DEV.ps1
. Disons que le paramètre est w=Dev
.
Comment puis-je faire ceci?
powershell
batch-file
Karan
la source
la source
Réponses:
Disons que vous souhaitez passer la chaîne en
Dev
tant que paramètre, à partir de votre fichier batch:mettez dans votre tête de script PowerShell:
Ceci si vous souhaitez utiliser la variable intégrée
$args
. Autrement:et à l'intérieur de votre tête de script PowerShell:
Ceci si vous voulez un paramètre nommé.
Vous pourriez également être intéressé par le renvoi du niveau d'erreur:
Le niveau d'erreur sera disponible dans le fichier de commandes sous la forme
%errorlevel%
.la source
En supposant que votre script est quelque chose comme l'extrait ci-dessous et nommé testargs.ps1
Vous pouvez appeler cela sur la ligne de commande comme suit:
Cela imprimera "Test String" (sans guillemets) sur la console. "Test String" devient la valeur de $ w dans le script.
la source
Lorsqu'un script est chargé, tous les paramètres transmis sont automatiquement chargés dans des variables spéciales
$args
. Vous pouvez référencer cela dans votre script sans le déclarer au préalable.Par exemple, créez un fichier appelé
test.ps1
et placez simplement la variable$args
sur une ligne seule. L'appel du script comme celui-ci génère la sortie suivante:En règle générale, lors de l'appel d'un script en appelant directement PowerShell, je suggérerais d'utiliser l'
-File
option plutôt que de l'invoquer implicitement avec le&
- cela peut rendre la ligne de commande un peu plus propre, en particulier si vous devez gérer des guillemets imbriqués.la source
Ajoutez la déclaration de paramètre en haut du fichier ps1
test.ps1
Résultat
la source
La réponse de @Emiliano est excellente. Vous pouvez également passer des paramètres nommés comme ceci:
Notez que les paramètres sont en dehors de l'appel de commande et que vous utiliserez:
la source