2

Я использую код Visual Studio для написания сценариев PowerShell.

Я установил расширение PowerShell ms-vscode.powershell для кода Visual Studio.

Всякий раз, когда я использую псевдоним в своем скрипте , PSScriptAnalyzer говорит мне использовать полное имя CmdLet. Это немного раздражает, потому что все псевдонимы отмечены зеленой пышной линией.

Как я могу отключить это?

see_screenshot_of_the_problem

1 ответ1

3

Есть три способа сделать это.

Вариант 1 - использовать функцию поиска

  1. Нажмите F1 в коде Visual Studio, чтобы появилась панель поиска
  2. Написать >PowerShell: Select PS затем выберите PowerShell: Select PSScriptAnalyzer Rules
  3. уберите галочку на PSAvoidUsingCmdletAliases
  4. Нажмите на Confirm

Картина:

Вариант 2 - полностью отключить ScriptAnalysis

  1. Щелкните значок шестеренки в левом нижнем углу кода Visual Studio.
  2. Нажмите на настройки
  3. Нажмите символ {} в правом верхнем углу
  4. Добавьте "powershell.scriptAnalysis.enable": false в настройки пользователя справа (см. Скриншот ниже).
  5. Сохраните настройки пользователя, нажав CTRL + S

Скриншот:

Ваш анализатор скриптов теперь отключен и больше не будет жаловаться на псевдонимы.

Вариант 3 - создать файл настроек и отключить только информацию о псевдонимах

  1. Создайте файл .psd1 в вашей файловой системе. Скопируйте шаблон снизу в этот файл и сохраните его.
  2. Перейдите к своим UserSettings в VSCode, как описано в Варианте 2, пункты с 1 по 3.
  3. Добавьте "powershell.scriptAnalysis.settingsPath": "C:\\foo\\bar\\FileName.psd1" и сохраните его.

Вот картина этого:

Шаблон (взят из https://github.com/PowerShell/vscode-powershell/blob/develop/examples/PSScriptAnalyzerSettings.psd1):

@{
    # Only diagnostic records of the specified severity will be generated.
    # Uncomment the following line if you only want Errors and Warnings but
    # not Information diagnostic records.
    # Severity = @('Error','Warning')

    # Analyze **only** the following rules. Use IncludeRules when you want
    # to invoke only a small subset of the defualt rules.
    IncludeRules = @('PSAvoidDefaultValueSwitchParameter',
                     'PSMisleadingBacktick',
                     'PSMissingModuleManifestField',
                     'PSReservedCmdletChar',
                     'PSReservedParams',
                     'PSShouldProcess',
                     'PSUseApprovedVerbs',
                     'PSUseDeclaredVarsMoreThanAssigments')

    # Do not analyze the following rules. Use ExcludeRules when you have
    # commented out the IncludeRules settings above and want to include all
    # the default rules except for those you exclude below.
    # Note: if a rule is in both IncludeRules and ExcludeRules, the rule
    # will be excluded.
    ExcludeRules = @('PSAvoidUsingAliases','PSAvoidUsingWriteHost')
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .