Не удалось установить параметр Path - PullRequest
0 голосов
/ 25 февраля 2020

Я пишу сценарий PowerShell, который берет соответствующие данные из файла CSV и создает новый файл CSV. Все работает, как и ожидалось, но у меня проблемы с настройкой переменной Path. Каждый раз, когда я запускаю Скрипт, меня просят указать путь, даже если он указывает путь в блоке 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 ';'

Спасибо за помощь!

1 Ответ

0 голосов
/ 25 февраля 2020

Когда вы используете Mandatory = $true в разделе параметров, это означает, что вы должны предоставить это при запуске скрипта. Сделайте это $false так, чтобы это было необязательно. Если вы не предоставите значение, оно будет использовать то, которое вы определили в качестве значения по умолчанию, но если вы при вызове скрипта предоставите значение переменной -Path, оно переопределит путь по умолчанию.

Также удалите . до C:\Users в $Path.

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.
...