我写了下面的代码,当我使用cmd./generate.ps1 -name 'Test' -class 'first' -subject 'Maths'
生成一个名为Control.ps1的文件,输出如下
$name = "Test"
$class = "first"
$subject = "Maths"
但当我将命令更改为./generate.ps1 -name 'Test' -class 'first' -subject 'Maths', 'English'
最后一个值替换了N-1值。我尝试使用foreach循环,它仍然替换了N-1值
我的预期输出如下
$name = "Test"
$class = "first"
$subject = "Maths"
$subject = "English"
也请让我知道,如果这个代码可以优化到更好的标准
param(
$name,
$class,
$subject)
MyFunction
$Script:name = $name
$Script:class = $class
$Script:subject = $subject
$ControlFile = "D:\Users\Downloads\Control.ps1"
function WriteParameterFile
{
New-Item -Path $ControlFile -ItemType File -Force | Out-Null
Add-Content -Path $ControlFile -Value ('${0} = "{1}"' -f @("name",$name))
Add-Content -Path $ControlFile -Value ('${0} = "{1}"' -f @("class",$class))
Add-Content -Path $ControlFile -Value ('${0} = "{1}"' -f @("subject",$subject))
}
WriteParameterFile $ControlFile
1条答案
按热度按时间juud5qan1#
以下是如何使用
$PSBoundParameters
使代码更具动态性。这将能够处理向param
块添加更多参数以及将参数类型从[string]
更改为[string[]]
: