我有一个问题,我有一个2脚本,然后名字,然后first.ps1和second.ps1,它们看起来像
first.ps1:
param(
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$filename="",
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$arguments=""
)
Function WriteFirst
{
Write-Host $filename
Write-Host $arguments
}
和second.ps1
param(
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$log=""
)
Function WriteSecond
{
Write-Host $log
}
现在使用c#(使用嵌入式资源,没有什么特别之处)我想将这两个脚本合并为一个,因为我们可以说它们可以是单独的模块,我可以构建一个最终脚本,例如第一个脚本将执行命令,第二个将读输出缓冲区。
现在问题是关于婴儿车,我是否需要以某种方式加入或者他们会加起来或者可能会覆盖?
答案 0 :(得分:3)
您当前设置PowerShell脚本的方法是在脚本级别设置参数,然后在函数中使用它们。
更好的方法是将参数设置为功能级别。
param(
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$filename="",
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$arguments=""
)
Function WriteFirst
{
param(
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$filename="",
[parameter(Mandatory=$True,ValueFromPipeline=$True)][string]$arguments=""
)
Write-Host $filename
Write-Host $arguments
}
WriteFirst -filename $filename -arguments $arguments
从c#
,check out this post调用这些功能。从中,您可以推断出powershell.AddScript(...).AddParameter(...)
会为您提供所需要的内容,但我相信powershell.AddCommand(...).AddParameter(...)
是一种更好的方法。