Comment puis-je passer des arguments ou des variables d'un script powershell à l'autre?
Dans cmd, je pouvais passer des arguments à partir d'une chauve-souris à l'autre en les inscrivant dans le après les à-être-exécuter le fichier bat a été dit. Puis l'exécuter en bat les a reçus en tant que %1, %2, %3, etc. Peut-on le faire en Powershell?
J'ai un script ps1,script1, qui invite l'utilisateur à un emplacement. Ce script a été pris en charge. Cet emplacement est stocké dans une variable; $loc. Dans le premier script, il y a un point que l'utilisateur peut choisir une option qui permettra d'exécuter un autre script ps1, script2, qui a lui-même plus d'options. Je veux passer $loc à la script2 de script1.
Dans script1, j'ai essayé les suivantes:
param ($loc)
start-process "\script2.ps1" -ArgumentList $loc
start-process "\script2.ps1" -$loc
start-process "\script2.ps1"
Alors est-script 2
args[0]
$loc
Je sais que je suis probablement juste de ne pas comprendre les arguments de passage. C'est que l'autre des options d'appels d'une chauve-souris de script. Que me sert -ArgumentList $loc et il passe très bien. - Je choisir que l'argument de la chauve-souris script à l'aide de "Set loc = %1"
Double Possible de Charger des variables à partir d'un autre script powershell
OriginalL'auteur user3377627 | 2014-11-04
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin
Start-Process
pour exécuter un script PowerShell à partir d'un autre script PowerShell. Il suffit d'appeler le deuxième script avec tout ce que les paramètres que vous voulez:Dans le deuxième script de la liste d'arguments peut être consulté, par exemple la
$args
tableau:Vous pouvez également définir des paramètres nommés, comme ceci:
ou (plus complet) comme ceci:
Définir les paramètres nommés permet de passer des arguments sans avoir à se soucier de leur ordre:
ou d'avoir automatiquement les paramètres de validé sans avoir à mettre en œuvre les contrôles dans le corps de la fonction:
Si plusieurs arguments sont passés de paramètres nommés ont été définis ces arguments supplémentaires sont stockées dans le
$args
tableau:Pour plus d'informations, voir
Get-Help about_Functions_Advanced_Parameters
.OriginalL'auteur Ansgar Wiechers
Au sommet d'une
.ps1
script qui définit un paramètre pour le script, donc l'appeler commeTous les attributs, vous pouvez appliquer, y compris à l'aide de
[CmdletBinding()]
sur leparam
déclaration d'une fonction de travail sur un script.OriginalL'auteur Richard
Les variables déclarées dans des Variables.ps1 sont au Script "Champ d'application". C'est que vous ne pouvez pas les voir à l'extérieur de la portée de l'script qui les déclare. Une façon de rapprocher les variables en Variables.ps1 à la portée de la main.ps1 est de "point source" des Variables.ps1. Cela, en effet, s'exécute Variables.ps1 à la portée de la main.ps1. Pour ce faire, il suffit de coller une période et l'espace, avant votre invocation du script:
OriginalL'auteur Naha