无法设置 Path 参数

Failed to set a Path parameter

我正在编写一个 PowerShell Skript,它从 CSV 文件中获取相关数据并创建一个新的 CSV 文件。 一切都按预期工作,但我在设置 Path 变量时遇到了问题。 每次我启动 Skript 时,我都会询问路径,即使我已经在 Param 块中指定了路径。

Param (
        # Param1 Pfadparameter
        [Parameter(Mandatory=$true,
                   Position=0,
                   ValueFromPipeline=$true,
                   ValueFromPipelineByPropertyName=$true,
                   ValueFromRemainingArguments=$false, 
                   ParameterSetName='Parameter Set 1')]
                   $Path = '.C:\Users\wkivan3\Desktop\Sheduling\Aufgabe\kurz.csv'
    )

这里是使用 $Path 参数的行:

$Accountdaten = Get-Content -Path $Path | convertfrom-csv -Delimiter ';'

感谢您的帮助!

当您在参数部分使用 Mandatory = $true 时,这意味着您 必须 提供 运行 脚本。使 $false 成为可选的。如果您不提供该值,它将使用您定义的值作为默认值,但如果您在调用脚本时向 -Path 变量提供值,它将覆盖默认路径。

此外,删除 $PathC:\Users 之前的 .

Param (
        # Param1 Pfadparameter
        [Parameter(Mandatory=$true, # Change this to $false.
                   Position=0,
                   ValueFromPipeline=$true,
                   ValueFromPipelineByPropertyName=$true,
                   ValueFromRemainingArguments=$false, 
                   ParameterSetName='Parameter Set 1')]
                   $Path = 'C:\Users\xyz\Desktop\Sheduling\temp\kurz.csv'
    )

powershell script.ps1 -Path "C:\NewPath.csv" # will use C:\NewPath.csv as the $path
powershell script.ps1                        # uses the C:\users\xyz\desktop\sheduling\temp\kurz.csv path.