我需要将一些参数从文件中的一个脚本传递给另一个脚本。我将当前脚本文件的路径加载到变量并添加名称,我要调用的其他脚本的参数。
以下是featuresBoot=config,ssh,management,kar,\
basit-core-domain,\
#basit-datasource-ecom,\
basit-connector-ecom,\
basit-datasource-talendmd,\
basit-connector-talendmd,\
basit-datasource-hybris,\
basit-connector-hybris,\
basit-connector-sap,\
basit-connector-jms,\
#basit-order-service,\
#basit-article-service,\
#basit-checkout-service,\
#basit-checkout-service,\
#basit-cart-service,\
basit-server-availability,\
#basit-address-service,\
#basit-user-service,\
basit-connector-atp-engine
中调用和传递参数的示例:
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 \ Script2.ps1 -passedArgument datatopass'不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
当我尝试像这样手动使用脚本时
C:\Users\user1\Desktop\Script1.ps1 -argument datatopass
它运行正常,并且不会报告错误路径或名称的任何错误。
我不知道问题出在哪里,而且我无法找到有关此错误的任何内容。
答案 0 :(得分:1)
您不必将passedArgument的值与字符串连接起来。尝试:
& (Join-Path $thisScript 'anotherScript.ps1') -passedArgument $argument