在脚本文件之间传递参数
Passing Arguments between script files
我需要将几个参数从文件中的一个脚本传递到另一个脚本。我将当前脚本文件的路径加载到变量中,并添加我想调用的其他脚本的名称和参数。
这是我在Script1.ps1
中获得的调用和传递参数的示例:
Param([string]$argument)
$thisScript = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
.($thisScript+'\anotherScript.ps1 -passedArgument '+$argument)
这是我正在调用的脚本 Script2.ps1
的一部分:
Param([string]$passedArgument)
$passedArgument = "do some work with it HERE"
当我像这样启动第一个脚本时
C:\Users\user1\Desktop\Script1.ps1 -argument datatopass
它写入错误
The term 'C:\Users\user1\Desktop\Script2.ps1 -passedArgument datatopass' 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.
当我尝试像这样手动使用脚本时
C:\Users\user1\Desktop\Script2.ps1 -passedArgument datatopass
它工作正常,不会报告任何路径或名称错误的错误。
我不知道问题出在哪里,也找不到关于这个错误的任何信息。
您不必将传递的 Argument 及其值连接到字符串。尝试:
& (Join-Path $thisScript 'anotherScript.ps1') -passedArgument $argument
我需要将几个参数从文件中的一个脚本传递到另一个脚本。我将当前脚本文件的路径加载到变量中,并添加我想调用的其他脚本的名称和参数。
这是我在Script1.ps1
中获得的调用和传递参数的示例:
Param([string]$argument)
$thisScript = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
.($thisScript+'\anotherScript.ps1 -passedArgument '+$argument)
这是我正在调用的脚本 Script2.ps1
的一部分:
Param([string]$passedArgument)
$passedArgument = "do some work with it HERE"
当我像这样启动第一个脚本时
C:\Users\user1\Desktop\Script1.ps1 -argument datatopass
它写入错误
The term 'C:\Users\user1\Desktop\Script2.ps1 -passedArgument datatopass' 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.
当我尝试像这样手动使用脚本时
C:\Users\user1\Desktop\Script2.ps1 -passedArgument datatopass
它工作正常,不会报告任何路径或名称错误的错误。
我不知道问题出在哪里,也找不到关于这个错误的任何信息。
您不必将传递的 Argument 及其值连接到字符串。尝试:
& (Join-Path $thisScript 'anotherScript.ps1') -passedArgument $argument