gpt4 book ai didi

powershell - 更正未传递给函数的参数值

转载 作者:行者123 更新时间:2023-12-04 00:59:35 25 4
gpt4 key购买 nike

我有一个名为 TestFunc.ps1 的文件。其内容如下

Function TestFunc([string]$param1, [string]$param2)
{
Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"
}

TestFunc $param1 $param2

我是这样调用它的

C:\Test\TestFunc.ps1 "Hello" "World"

输出如下

------------------


------------------

我希望输出为

------------------
Hello
World
------------------

我在这里做错了什么?

最佳答案

参数是为函数的范围定义的,而不是脚本。

你想要的是一个Param部分:

param ([string]$param1, [string]$param2)

function TestFunc([string]$param1, [string]$param2) {
Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"
}
TestFunc $param1 $param2

当然,具有重复的变量名会产生误导,但我认为这只是一个测试函数。在您的情况下,您甚至根本不需要函数:

param ([string]$param1, [string]$param2)

Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"

或者:

param ([string]$param1, [string]$param2)

function TestFunc {
Write-Host "------------------"
Write-Host $param1
Write-Host $param2
Write-Host "------------------"
}
TestFunc

或者使用$args automatic variable ,根本没有定义任何参数:

function TestFunc {
Write-Host "------------------"
Write-Host $args[0]
Write-Host $args[1]
Write-Host "------------------"
}
TestFunc foo bar

关于powershell - 更正未传递给函数的参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55225164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com