Имя источника source не распознается как имя командлета функции файла сценария или исполняемой программы

Обновлено: 03.07.2024

Этот раздел содержит список всех возможных ошибок, с которыми вы можете столкнуться при использовании Hardhat, и объяснение каждой из них.

Вы пытаетесь запустить Hardhat вне проекта Hardhat.

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

Hardhat не поддерживает вашу версию Node.js.

Обновите версию Node.js и повторите попытку.

Вы пытаетесь выполнить неподдерживаемую операцию.

Если вы не создаете задачу или плагин, возможно, это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Инициализация каски была выполнена дважды. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Не удалось инициализировать каску. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Не удалось инициализировать каску. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Процесс инициализации каски был выполнен дважды. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

В вашем файле конфигурации есть одна или несколько ошибок.

Подробности см. в сообщении об ошибке или в документации

При загрузке файла конфигурации произошла ошибка.

Наиболее частым источником ошибок является попытка импорта Hardhat Runtime Environment из вашей конфигурации или импортированного из нее файла. Это невозможно, так как Hardhat не может быть инициализирован, пока определяется его конфигурация.

Возможно, вы также случайно импортировали каску вместо каски/config .

Убедитесь, что ваш файл конфигурации правильный.

Была предпринята попытка изменить конфигурацию пользователя.

Возможно, это ошибка в одном из ваших плагинов.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Нарушен внутренний инвариант. Вероятно, это вызвано программной ошибкой в ​​каске или в одном из используемых плагинов.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Вы пытались запустить Hardhat из глобальной установки или вообще не устанавливали его. Это не поддерживается.

Пожалуйста, установите Hardhat локально с помощью npm или Yarn и повторите попытку.

Вы запустили проект Hardhat, в котором используется машинописный текст, но не установили ts-node.

Пожалуйста, запустите это и повторите попытку: npm install --save-dev ts-node

Вы запускаете проект Hardhat, в котором используется машинописный текст, но он не установлен.

Пожалуйста, запустите это и повторите попытку: npm install --save-dev typescript

Вы пытаетесь запустить Hardhat вне проекта Hardhat, и нам не удалось его инициализировать.

Если вы пытались создать новый проект, повторите попытку, используя подсистему Windows для Linux (WSL) или PowerShell.

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

Вы пытаетесь создать новый проект каски, но существуют существующие файлы, которые будут перезаписаны в процессе создания.

Либо попробуйте использовать новое имя каталога, либо удалите конфликтующие файлы.

Вы пытаетесь запустить Hardhat в несуществующей сети.

(открывает новое окно), чтобы узнать, как определять собственные сети.

В вашей конфигурации указан идентификатор цепочки для сети, которую вы пытаетесь использовать, но Hardhat обнаружил другой идентификатор цепочки.

Убедитесь, что вы правильно настраиваете конфигурацию.

Вы вызвали eth_sign с неверными параметрами.

Убедитесь, что вы отправляете параметр данных.

Вы пытаетесь отправить транзакцию или подписать некоторые данные с помощью учетной записи, которая не управляется ни вашим узлом Ethereum, ни Hardhat.

Пожалуйста, проверьте свои учетные записи и параметр from в вызовах RPC.

Вы пытаетесь отправить транзакцию с локально управляемой учетной записью, и некоторые параметры отсутствуют.

Пожалуйста, проверьте параметры ваших транзакций.

Локальная учетная запись не настроена, и на удаленном узле есть учетные записи.

Убедитесь, что на вашем узле Ethereum разблокированы учетные записи.

В вашей конфигурации указан неверный путь к производному HD/BIP32.

(открывается в новом окне), чтобы узнать, как правильно определять учетные записи HD.

Одна из ваших транзакций отправила или получила недопустимое значение JSON-RPC QUANTITY.

Пожалуйста, дважды проверьте параметры ваших вызовов и обновите узел Ethereum.

Не удается подключиться к сети.

Убедитесь, что ваш узел работает, а также проверьте подключение к Интернету и конфигурацию сети.

Время ожидания одного из ваших запросов JSON-RPC истекло.

Убедитесь, что ваш узел работает, а также проверьте подключение к Интернету и конфигурацию сети.

На один из ваших запросов JSON-RPC получен недопустимый ответ.

Убедитесь, что ваш узел работает, а также проверьте подключение к Интернету и конфигурацию сети.

Не удалось получить один из ваших HD-ключей.

Попробуйте использовать другую мнемонику или получить меньше ключей.

Один из ваших вызовов отправил или получил недопустимое значение JSON-RPC DATA.

Пожалуйста, дважды проверьте параметры ваших вызовов и обновите узел Ethereum.

Вы вызвали eth_signTypedData_v4 с неверными параметрами. Убедитесь, что вы отправляете параметр данных со строкой JSON или объектом, соответствующим схеме EIP712 TypedData.

Вы пытаетесь отправить транзакцию с локально управляемой учетной записью, и ее параметры несовместимы. Вы отправили как gasPrice, так и maxFeePerGas или maxPriorityFeePerGas.

Пожалуйста, проверьте параметры ваших транзакций.

Вы пытаетесь отправить транзакцию с локально управляемой учетной записью, и параметры цены комиссии не указаны. Вам нужно отправить gasPrice или maxFeePerGas и maxPriorityFeePerGas.

Пожалуйста, проверьте параметры ваших транзакций.

Вы вызвали personal_sign с неверными параметрами.

Убедитесь, что вы отправляете параметр адреса.

Можно добавить позиционный параметр к вашей задаче, потому что уже есть переменный позиционный параметр, и он должен быть последним позиционным параметром.

Пожалуйста, проверьте свои определения задач.

Не удалось добавить параметр к вашей задаче, так как его имя уже используется.

Пожалуйста, проверьте свои определения задач.

Не удалось добавить параметр к вашей задаче, так как его имя используется в качестве параметра для Hardhat.

Пожалуйста, проверьте свои определения задач.

Не удалось добавить параметр к вашей задаче, поскольку он необходим и был добавлен после необязательного позиционного параметра.

Пожалуйста, проверьте свои определения задач.

Задача была запущена, но для нее не задано действие.

Пожалуйста, проверьте свои определения задач.

Вы попытались вызвать runSuper из незамещенной задачи.

Используйте runSuper.isDefined, чтобы убедиться, что вы можете его вызвать.

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

Пожалуйста, проверьте свои определения задач.

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

Пожалуйста, проверьте свои определения задач.

В именах параметров должен использоваться camelCase.

Пожалуйста, проверьте свои определения задач.

Вы не можете добавлять обязательные (необязательные) определения параметров в переопределенную задачу. Единственными поддерживаемыми параметрами для переопределенных задач являются флаги и необязательные параметры.

Пожалуйста, проверьте свои определения задач.

Вы не можете добавлять определения позиционных параметров в переопределенную задачу. Единственными поддерживаемыми параметрами для переопределенных задач являются флаги и необязательные параметры.

Пожалуйста, проверьте свои определения задач.

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

Пожалуйста, проверьте свои определения задач.

Задачи, которые можно вызывать из командной строки, требуют типов CLIArgumentType для своих аргументов.

Что делает эти типы особенными, так это то, что они могут быть представлены в виде строк, поэтому вы можете записать их в терминале.

Вы устанавливаете один из аргументов Hardhat, используя переменную среды, но она имеет неверное значение.

Пожалуйста, дважды проверьте переменные среды.

Один из ваших аргументов Hardhat или задачи имеет недопустимый тип.

Пожалуйста, перепроверьте свои аргументы.

Одна из ваших задач ожидала файл в качестве аргумента, но вы предоставили несуществующий или нечитаемый файл.

Пожалуйста, перепроверьте свои аргументы.

Пытался запустить несуществующую задачу.

Пожалуйста, дважды проверьте название задачи, которую вы пытаетесь запустить.

Hardhat не удалось распознать один из ваших аргументов командной строки.

Это может быть связано с тем, что вы пишете его перед названием задачи. Оно должно идти после него.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat.

Hardhat не удалось распознать один из параметров вашей задачи.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat или выполняли задачу.

Вы попытались запустить задачу, но отсутствовал один из обязательных аргументов.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat или выполняли задачу.

Вы попытались запустить задачу, но отсутствовал один из обязательных аргументов.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat или выполняли задачу.

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

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat или выполняли задачу.

Вы попытались запустить задачу с повторяющимся параметром.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat или выполняли задачу.

Вы пытались запустить каску с параметром с недопустимым регистром. Они должны быть строчными.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat.

Вы попытались запустить задачу с недопустимым параметром JSON.

Пожалуйста, проверьте еще раз, как вы вызывали Hardhat или выполняли задачу.

Вы попытались запустить подзадачу из командной строки.

Это не поддерживается. Запустите задачу справки, чтобы увидеть доступные параметры.

Попытка разрешить несуществующий файл Solidity в качестве точки входа.

Один из ваших источников Solidity импортирует неустановленную библиотеку.

Пожалуйста, дважды проверьте импорт или установите отсутствующую зависимость.

Один из файлов вашей библиотеки был импортирован, но не существует.

Пожалуйста, дважды проверьте импорт или обновите свои библиотеки.

Одна из ваших библиотек попыталась использовать относительный импорт для импорта файла за пределами своей области.

Это отключено по соображениям безопасности.

Один из ваших исходных файлов импортировал несуществующий файл.

Пожалуйста, дважды проверьте свой импорт.

Файл Solidity пытается импортировать другой файл по относительному пути и использует обратную косую черту (\) вместо косой черты (/).

Вы всегда должны использовать косую черту (/) при импорте Solidity.

Вы можете импортировать только те файлы, которые доступны локально или установлены через npm.

Файл Solidity пытается импортировать файл, используя его абсолютный путь.

Это не поддерживается, так как это может привести к сложно воспроизводимым компиляциям.

Файл Solidity пытается импортировать файл, находящийся вне проекта.

Это не поддерживается Hardhat.

Файл Solidity пытается импортировать файл, но регистр его исходного имени неправильный.

Компилятор Hardhat чувствителен к регистру, чтобы гарантировать переносимость проектов между разными операционными системами.

Вы пытались разрешить файл Solidity с неправильным регистром.

Компилятор Hardhat чувствителен к регистру, чтобы гарантировать переносимость проектов между разными операционными системами.

Файл Solidity пытается импортировать другой файл, принадлежащий неустановленной библиотеке.

Попробуйте установить библиотеку с помощью npm.

Версия Solidity в вашей конфигурации недействительна или еще не выпущена.

Пожалуйста, дважды проверьте конфигурацию solc.

Не удалось загрузить solc .

Пожалуйста, проверьте подключение к Интернету.

Не удалось загрузить список версий solc.

Пожалуйста, проверьте подключение к Интернету.

Не удалось проверить скачанный solc.

Пожалуйста, проверьте подключение к Интернету.

Hardhat не удалось получить допустимый компилятор solc.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Не удалось скомпилировать ваши смарт-контракты.

Дополнительную информацию см. в выводе Hardhat.

Пытался использовать каску для выполнения несуществующего скрипта.

Пожалуйста, дважды проверьте путь к вашему скрипту.

Выполнение скрипта привело к ошибке.

Дополнительную информацию см. в выводе Hardhat.

Hardhat Flatten не поддерживает циклические зависимости.

Мы рекомендуем не использовать такую ​​зависимость.

Сервер JSON-RPC можно запустить только при работе в сети Hardhat.

Чтобы запустить сервер JSON-RPC, повторите команду без параметра --network.

Проект не может быть скомпилирован с текущими настройками.

Вы передали номер блока для ответвления, но не URL. Hardhat не может разветвляться, если не задан URL-адрес JSON-RPC.

Эта версия Solidity не поддерживается Hardhtat. Используйте более новую поддерживаемую версию.

Пытался импортировать несуществующий артефакт.

Пожалуйста, убедитесь, что ваши контракты были скомпилированы, и еще раз проверьте имя вашего артефакта.

Есть несколько артефактов, соответствующих заданному названию контракта, и Hardhat не знает, какой из них использовать.

Пожалуйста, используйте полное имя контракта, чтобы устранить неоднозначность.

Вы пытались получить файл артефакта с неправильным регистром.

Разрешение артефактов Hardhat чувствительно к регистру, что обеспечивает переносимость проектов между разными операционными системами.

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

Используйте аналогичный подключаемый модуль Hardhat.

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

Пожалуйста, следуйте инструкциям Hardhat, чтобы решить эту проблему.

Шаблон сообщения об ошибке содержит недопустимое имя переменной. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Попытка заменить переменную сообщения об ошибке значением, содержащим другое имя переменной. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

В шаблоне сообщения об ошибке отсутствует значение замены. Это ошибка.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Предполагаемый путь артефакта не существует.

(открывает новое окно), чтобы помочь нам улучшить Hardhat.

Ожидалось имя источника Solidity, но был указан абсолютный путь.

Если вы не переопределяете задачи, связанные с компиляцией, сообщите об этом как об ошибке.

Ожидалось имя источника Solidity, но был указан относительный путь.

Если вы не переопределяете задачи, связанные с компиляцией, сообщите об этом как об ошибке.

Имя источника Solidity было недопустимым, так как оно использует обратную косую черту (\) вместо косой черты (/).

Если вы не переопределяете задачи, связанные с компиляцией, сообщите об этом как об ошибке.

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

Если вы не переопределяете задачи, связанные с компиляцией, сообщите об этом как об ошибке.

Вы пытались разрешить файл Solidity с неправильным регистром.

Компилятор Hardhat чувствителен к регистру, чтобы гарантировать переносимость проектов между разными операционными системами.

Имя источника должно соответствовать существующему файлу Solidity, но это не так.

Компилятор Hardhat чувствителен к регистру, чтобы гарантировать переносимость проектов между разными операционными системами.

Файл считается локальным, но находится в каталоге node_modules.

Если вы не переопределяете задачи, связанные с компиляцией, сообщите об этом как об ошибке.

Файл считается локальным, но находится вне проекта.

Если вы не переопределяете задачи, связанные с компиляцией, сообщите об этом как об ошибке.

Предполагалось, что имя контракта будет в полной форме, но это не так.

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

Вы можете видеть ниже, я создаю виртуальную среду и называю ее venv. Все выглядит хорошо, затем я пытаюсь активировать его, запустив source venv/bin/activate

Я думаю, что это может быть связано с моим системным путем, но не уверен, на что его указать (я знаю, как редактировать путь). Я на Python 7/ОС Windows, виртуальная среда 2.2.x

Эта документация действительно полезна как для систем Posix, так и для Windows: virtualenv.pypa.io/en/stable/userguide

32 Ответа 32

source — это команда оболочки, предназначенная для пользователей, работающих в Linux (или любом Posix, но не в Windows).

В Windows virtualenv создает файл .bat/.ps1, поэтому вместо него следует запустить venv\Scripts\activate (согласно документации virtualenv по скрипту активации).

Просто запустите активировать без расширения, чтобы нужный файл использовался независимо от того, используете ли вы cmd.exe или PowerShell.

Это также помогает с virtualenv в системах Posix и Windoze. virtualenv.pypa.io/en/stable/userguide

Я не вижу этот каталог "venv" после установки Python 2.7 в Windows. Совет? Я перешел по ссылке Blairg23, но не вижу скрипта «активировать» в моем каталоге Python «Scripts».

я запускал .\\venv\Scripts\activate.bat, но команда просто проходит в Windows 10 без активации venv sysmbol (venv) C:\myApp. в чем проблема

Перейдите к терминалу andconda, шаг 1

Вы можете проверить это с помощью инструмента паука в anaconda, набрав import tensorflow as tf

У меня была такая же проблема. Я использовал Python 2, Windows 10 и Git Bash. Оказывается, в Git Bash вам нужно использовать:

У меня есть компьютер с Windows, и использование терминала Git Bash было единственным терминалом, который работал у меня. (Другими терминалами, которые я пытался использовать, были командная строка и терминал VS Code.)

Для активации вы можете перейти в каталог venv your virtualenv, нажав cd venv .

Затем в Windows введите dir (в unix введите ls ). Вы получите 5 папок, включая Lib, Scripts, tcl и 60

Теперь введите .\Scripts\activate, чтобы активировать ваш virtualenv venv .

Ваше приглашение изменится, показывая, что вы сейчас работаете в виртуальной среде. Это будет выглядеть примерно так (venv)user@host:~/venv$ .

Теперь ваш venv активирован.

Убедитесь, что venv присутствует, и просто следуйте приведенным ниже командам. Он работает в Windows 10.

Перейдите по пути, по которому вы хотите разместить виртуальную среду:

Создайте виртуальную среду с именем "env":

Добавьте путь к файлу игнорирования git (необязательно):

Активируйте виртуальную среду:

введите здесь описание изображения

Для Windows введите "C:\Users\Sid\venv\FirstProject\Scripts\activate" в терминале без кавычек. Просто укажите расположение папки Scripts в вашем проекте. Итак, команда будет location_of_the_Scripts_Folder\activate.

команда source официально предназначена для семейства операционных систем Unix, и вы не можете использовать ее в Windows в основном. вместо этого вы можете использовать команду venv\Scripts\activate для активации вашей виртуальной среды.

Сделал скриншот, как правильно работает команда venv\Scripts\activate

  1. Откройте PowerShell от имени администратора
  2. Введите "Set-ExecutionPolicy RemoteSigned -Force
  3. Запустите gpedit.msc и перейдите в раздел >Административные шаблоны>Компоненты Windows>Windows Powershell
  4. Найдите «Активировать выполнение скриптов» и установите для него значение «Активировано».
  5. Установите для директивы выполнения значение "Разрешить все"
  6. Применить
  7. Обновите окружение

У меня уйма времени на использование virtualenv в Windows с git bash, обычно я явно указываю двоичный файл python.

В обоих случаях предполагается, что ваш рабочий каталог содержит виртуальную среду ( .env ).

Кроме того, некоторые вещи ведут себя неправильно, кашляет _ansible_ кашель, когда виртуальная среда не активирована, поэтому, если что-то не так, вам, возможно, придется активировать venv в любом случае :(

Вы можете запустить исходную команду на терминале cygwin

Небольшое напоминание: я неправильно поставил косую черту в Win10 cmd. Согласно документации python, команда активации: C:\> \Scripts\activate.bat Когда вы просматриваете каталоги, это, например. компакт-диск .env/скрипты

Поэтому для создания venv я использовал python -m venv --copies .env, а для активации .env\Scripts\activate.bat

откройте папку с помощью любой консоли gitbash. например, с помощью VisualCode и консольной программы Gitbash: 1) Установите Gitbash для Windows

2) используя VisualCode IDE, щелкните правой кнопкой мыши проект, открытый в опции консоли терминала

3) в оконной консоли в Visualcode ищем Select->оболочку по умолчанию и меняем ее на Gitbash

4) теперь ваш проект открыт с помощью консоли bash и правильного пути, поместите источник ./Scripts/activate

Описывает, как запускать и писать скрипты в PowerShell.

Подробное описание

Сценарий – это обычный текстовый файл, содержащий одну или несколько команд PowerShell. Скрипты PowerShell имеют расширение PS1.

Выполнение сценария очень похоже на выполнение командлета. Вы вводите путь и имя файла сценария и используете параметры для отправки данных и установки параметров. Вы можете запускать сценарии на своем компьютере или в удаленном сеансе на другом компьютере.

При написании скрипта команда сохраняется для последующего использования и упрощается обмен ею с другими. Самое главное, он позволяет вам запускать команды, просто вводя путь к сценарию и имя файла. Скрипты могут быть как простыми, как одна команда в файле, так и обширными, как сложная программа.

Как запустить скрипт

Прежде чем запускать сценарий в Windows, необходимо изменить политику выполнения PowerShell по умолчанию. Политика выполнения не применяется к PowerShell, работающему на платформах, отличных от Windows.

Политика выполнения по умолчанию Restricted запрещает запуск всех сценариев, включая сценарии, которые вы пишете на локальном компьютере. Дополнительные сведения см. в разделе about_Execution_Policies.

Политика выполнения сохраняется в реестре, поэтому ее нужно изменить только один раз на каждом компьютере.

Чтобы изменить политику выполнения, используйте следующую процедуру.

В командной строке введите:

Изменение вступает в силу немедленно.

Чтобы запустить скрипт, введите полное имя и полный путь к файлу скрипта.

Например, чтобы запустить сценарий Get-ServiceLog.ps1 в каталоге C:\Scripts, введите:

Чтобы запустить скрипт в текущем каталоге, введите путь к текущему каталогу или используйте точку для представления текущего каталога, за которой следует обратная косая черта пути ( .\ ).

Например, чтобы запустить сценарий ServicesLog.ps1 в локальном каталоге, введите:

Если сценарий имеет параметры, введите параметры и значения параметров после имени файла сценария.

Например, следующая команда использует параметр ServiceName сценария Get-ServiceLog для запроса журнала активности службы WinRM.

В целях безопасности PowerShell не запускает сценарии при двойном щелчке значка сценария в проводнике или при вводе имени сценария без полного пути, даже если сценарий находится в текущем каталоге. Дополнительные сведения о выполнении команд и сценариев в PowerShell см. в разделе about_Command_Precedence.

Запуск с помощью PowerShell

Начиная с PowerShell 3.0, вы можете запускать сценарии из Проводника.

Запустите Проводник, щелкните правой кнопкой мыши имя файла сценария и выберите "Запустить с помощью PowerShell".

Функция "Запуск с PowerShell" предназначена для запуска сценариев, которые не имеют обязательных параметров и не возвращают выходные данные в командную строку.

Запуск скриптов на других компьютерах

Чтобы запустить сценарий на одном или нескольких удаленных компьютерах, используйте параметр FilePath командлета Invoke-Command.

Введите путь и имя файла сценария в качестве значения параметра FilePath. Сценарий должен находиться на локальном компьютере или в каталоге, доступ к которому есть у локального компьютера.

Следующая команда запускает сценарий Get-ServiceLog.ps1 на удаленных компьютерах с именами Server01 и Server02.

Получить справку по скриптам

Командлет Get-Help получает разделы справки для сценариев, а также для командлетов и других типов команд. Чтобы получить раздел справки для сценария, введите Get-Help, а затем путь и имя файла сценария. Если путь к сценарию указан в переменной среды Path, вы можете опустить этот путь.

Например, чтобы получить справку по скрипту ServicesLog.ps1, введите:

Как написать сценарий

Сценарий может содержать любые допустимые команды PowerShell, включая отдельные команды, команды, использующие конвейер, функции и управляющие структуры, такие как операторы If и циклы For.

Чтобы написать сценарий, откройте новый файл в текстовом редакторе, введите команды и сохраните их в файле с допустимым именем и расширением .ps1.

Следующий пример представляет собой простой сценарий, который получает службы, работающие в текущей системе, и сохраняет их в файл журнала. Имя файла журнала создается с текущей даты.

Чтобы создать этот сценарий, откройте текстовый редактор или редактор сценариев, введите эти команды и сохраните их в файле с именем ServiceLog.ps1 .

Параметры в скриптах

Параметры скрипта работают как параметры функции. Значения параметров доступны для всех команд сценария. Все функции параметров функции, включая атрибут Parameter и его именованные аргументы, также допустимы в сценариях.

При запуске скрипта пользователи скрипта вводят параметры после имени скрипта.

В следующем примере показан сценарий Test-Remote.ps1 с параметром ComputerName. Обе функции сценария могут обращаться к значению параметра ComputerName.

Чтобы запустить этот сценарий, введите имя параметра после имени сценария. Например:

Дополнительную информацию об операторе Param и параметрах функции см. в разделах about_Functions и about_Functions_Advanced_Parameters.

Написание справки для скриптов

Вы можете написать раздел справки для скрипта одним из двух следующих способов:

Справка по скриптам на основе комментариев

Создайте раздел справки, используя специальные ключевые слова в комментариях. Чтобы создать справку на основе комментариев для сценария, комментарии должны быть размещены в начале или в конце файла сценария. Дополнительные сведения о справке на основе комментариев см. в разделе about_Comment_Based_Help.

Справка по сценариям на основе XML

Создайте раздел справки на основе XML, например тип, который обычно создается для командлетов. Справка на основе XML необходима, если вы переводите разделы справки на несколько языков.

Чтобы связать сценарий с разделом справки на основе XML, используйте ключевое слово комментария справки .ExternalHelp. Дополнительные сведения о ключевом слове ExternalHelp см. в разделе about_Comment_Based_Help. Дополнительные сведения о справке на основе XML см. в разделе Как написать справку по командлету.

Возврат значения выхода

По умолчанию скрипты не возвращают статус выхода после завершения скрипта. Вы должны использовать оператор выхода, чтобы вернуть код выхода из скрипта. По умолчанию оператор выхода возвращает 0 . Вы можете указать числовое значение, чтобы вернуть другой статус выхода. Ненулевой код выхода обычно сигнализирует об ошибке.

В Windows допускается любое число между [int]::MinValue и [int]::MaxValue.

В Unix разрешены только положительные числа между [byte]::MinValue (0) и [byte]::MaxValue (255). Отрицательное число в диапазоне от -1 до -255 автоматически преобразуется в положительное число путем добавления 256. Например, -2 преобразуется в 254 .

В PowerShell оператор выхода задает значение переменной $LASTEXITCODE. В командной оболочке Windows (cmd.exe) оператор выхода задает значение переменной среды %ERRORLEVEL%.

Любой аргумент, который не является числовым или находится за пределами диапазона, зависящего от платформы, преобразуется в значение 0 .

Область сценария и источник точек

Каждый скрипт работает в своей области. Функции, переменные, псевдонимы и диски, созданные в сценарии, существуют только в области действия сценария. Вы не можете получить доступ к этим элементам или их значениям в области действия скрипта.

Чтобы запустить сценарий в другой области, вы можете указать область действия, например глобальную или локальную, или указать исходный код сценария.

Функция поиска точек позволяет запускать сценарий в текущей области действия, а не в области действия сценария. Когда вы запускаете сценарий с точечным источником, команды в сценарии выполняются так, как если бы вы ввели их в командной строке. Функции, переменные, псевдонимы и диски, создаваемые сценарием, создаются в той области, в которой вы работаете. После запуска сценария вы можете использовать созданные элементы и получать доступ к их значениям в своем сеансе.

Чтобы указать источник сценария, введите точку (.) и пробел перед путем к сценарию.

После запуска сценария UtilityFunctions.ps1 функции и переменные, созданные сценарием, добавляются в текущую область.

Например, сценарий UtilityFunctions.ps1 создает функцию New-Profile и переменную $ProfileName.

Если вы запускаете сценарий UtilityFunctions.ps1 в его собственной области сценария, функция New-Profile и переменная $ProfileName существуют только во время выполнения сценария. Когда скрипт завершает работу, функция и переменная удаляются, как показано в следующем примере.

Когда вы создаете сценарий и запускаете его, сценарий создает функцию New-Profile и переменную $ProfileName в вашем сеансе в вашей области. После запуска скрипта вы можете использовать функцию New-Profile в своем сеансе, как показано в следующем примере.

Дополнительную информацию об области действия см. в разделе about_Scopes.

Скрипты в модулях

Модуль — это набор связанных ресурсов PowerShell, которые можно распространять как единое целое. Вы можете использовать модули для организации ваших скриптов, функций и других ресурсов. Вы также можете использовать модули для распространения своего кода среди других и для получения кода из надежных источников.

Вы можете включить скрипты в свои модули или создать модуль скрипта, который полностью или в основном состоит из скрипта и вспомогательных ресурсов. Модуль скрипта — это просто скрипт с расширением файла .psm1.

Дополнительную информацию о модулях см. в разделе about_Modules.

Другие функции скрипта

PowerShell имеет множество полезных функций, которые можно использовать в скриптах.

$PSCommandPath — содержит полный путь и имя выполняемого скрипта. Этот параметр действителен во всех сценариях. Эта автоматическая переменная появилась в PowerShell 3.0.

$PSScriptRoot — содержит каталог, из которого запускается сценарий. В PowerShell 2.0 эта переменная допустима только в модулях сценариев ( .psm1 ). Начиная с PowerShell 3.0, он действителен во всех скриптах.

$MyInvocation — автоматическая переменная $MyInvocation содержит информацию о текущем скрипте, включая информацию о том, как он был запущен или «вызван». Вы можете использовать эту переменную и ее свойства для получения информации о сценарии во время его выполнения. Например, переменная $MyInvocation .MyCommand.Path содержит путь и имя файла сценария. $MyInvocation .Line содержит команду, которая запустила сценарий, включая все параметры и значения.

Начиная с PowerShell 3.0, $MyInvocation имеет два новых свойства, которые предоставляют информацию о скрипте, вызвавшем текущий скрипт. Значения этих свойств заполняются только в том случае, если инициатор или вызывающий объект является сценарием.

PSCommandPath содержит полный путь и имя скрипта, который вызывал или вызывал текущий скрипт.

PSScriptRoot содержит каталог скрипта, вызвавшего или запустившего текущий скрипт.

В отличие от автоматических переменных $PSCommandPath и $PSScriptRoot, которые содержат информацию о текущем сценарии, свойства PSCommandPath и PSScriptRoot переменной $MyInvocation содержат информацию о сценарии, вызвавшем текущий сценарий.

Разделы данных. Вы можете использовать ключевое слово данных, чтобы отделить данные от логики в сценариях. Разделы данных также могут упростить локализацию. Дополнительные сведения см. в разделах about_Data_Sections и about_Script_Internationalization.

Подписание сценария. Вы можете добавить к сценарию цифровую подпись. В зависимости от политики выполнения вы можете использовать цифровые подписи для ограничения выполнения сценариев, которые могут включать небезопасные команды. Дополнительные сведения см. в разделах about_Execution_Policies и about_Signing.

Git – это бесплатная распределенная система управления версиями с открытым исходным кодом, предназначенная для быстрого и эффективного управления любыми проектами, от небольших до очень крупных. На сегодняшний день наиболее широко используемой современной системой контроля версий в мире является Git. Git — это зрелый, активно поддерживаемый проект с открытым исходным кодом, первоначально разработанный в 2005 году Линусом Торвальдсом, известным создателем ядра операционной системы Linux. Имея распределенную архитектуру, Git является примером DVCS (отсюда и распределенная система управления версиями). Вместо того, чтобы иметь только одно место для полной истории версий программного обеспечения, как это принято в некогда популярных системах контроля версий, таких как CVS или Subversion (также известной как SVN), в Git рабочая копия кода каждого разработчика также является репозиторием. который может содержать полную историю всех изменений. Стоит отметить, что Git был разработан с учетом производительности, безопасности и гибкости. Пожалуйста, обратитесь к некоторым из этих связанных руководств: Как установить Git на macOS, как клонировать репозиторий и установить программное обеспечение из GitHub в Windows, Паника: не удалось зарегистрировать GitLab-runner, у вас могут быть проблемы с сетью,

Приведенная ниже ошибка возникла из-за того, что Git не был установлен в Windows. Кроме того, не определена переменная среды или путь, где находятся исполняемые программы Docker. Пожалуйста, обратитесь к этим связанным руководствам: как создать и развернуть локальный сервер реестра с образом Docker, как получить свой первый образ контейнера Nginx из Docker Hub и развернуть его на своем локальном компьютере, интеграция Azure DevOps и GitHub для развертывания Docker и Kubernetes, как создать статический модуль в Kubernetes и как установить, зарегистрировать и запустить GitLab Runner в Windows.

Установите Git в Windows

Чтобы решить эту проблему, нам нужно установить Git в Windows, как показано ниже. Перейдите на официальный веб-сайт Git и щелкните 64-разрядную версию Git для установки Windows, как показано ниже.

Перейдите к загруженному установочному файлу, как показано ниже. Дважды щелкните файл, чтобы извлечь его и запустить программу установки.

Примите контроль доступа пользователей, если он включен в вашей среде. Нажмите Да, чтобы продолжить.Вы можете узнать, как включить или выключить UAC в Windows.

Пожалуйста, ознакомьтесь со Стандартной общественной лицензией GNU и, когда будете готовы к установке, нажмите "Далее" .

Установщик запросит у вас путь установки. Я оставлю расположение по умолчанию, если у вас нет причин его менять, и нажму "Далее".

В окне выбора компонентов я оставлю все по умолчанию. Нажмите «Далее», чтобы продолжить

Как видите, программа установки предложит создать папку в меню «Пуск». Просто нажмите «Далее».

Выберите текстовый редактор, который вы хотите использовать с Git. Используйте раскрывающееся меню, чтобы выбрать редактор по вашему выбору. Я в порядке с редактором по умолчанию. Нажмите «Далее», чтобы продолжить.

Следующий шаг позволяет выбрать другое имя для начальной ветки. По умолчанию используется «мастер». Если вы не работаете в команде, для которой требуется другое имя, оставьте параметр по умолчанию и нажмите «Далее».

Я выберу второй вариант. Это позволяет вам изменить среду PATH. PATH — это набор каталогов по умолчанию, который включается при запуске команды из командной строки. Оставьте средний (рекомендуемый) выбор и нажмите Далее.

Я выберу вариант Использовать связанный OpenSSH, как показано ниже. Я нажму «Далее», чтобы продолжить.

Окно ниже относится к сертификатам сервера. Большинству пользователей следует использовать значение по умолчанию. Если вы работаете в среде Active Directory и у вас настроен сервер центра сертификации, вам может потребоваться переключиться на сертификаты Магазина Windows. Нажмите «Далее».

Я выберу самый первый вариант, так как он преобразует окончания строк. Рекомендуется оставить выбор по умолчанию. Это связано со способом форматирования данных, и изменение этого параметра может вызвать проблемы. Нажмите «Далее».

Я буду использовать второй вариант. Нажмите «Далее», чтобы продолжить.

Установщик теперь спрашивает, что должна делать команда git pull, как показано на изображении ниже. Параметр по умолчанию рекомендуется, если только вам не нужно специально изменить его поведение. Нажмите «Далее», чтобы продолжить установку.

Решите, какой помощник по учетным данным использовать. Git использует помощники по учетным данным для извлечения или сохранения учетных данных. Оставьте параметр по умолчанию, поскольку он является наиболее стабильным, и нажмите "Далее".

Рекомендуются параметры по умолчанию, однако на этом шаге вы можете решить, какой дополнительный параметр вы хотите включить. Если вы используете символические ссылки, которые похожи на ярлыки для командной строки, поставьте галочку. Нажмите «Далее».

Ниже приведены экспериментальные варианты. Я оставлю их неотмеченными, а затем нажму "Установить" .

Как вы можете видеть ниже, Git в данный момент устанавливается, и в следующем окне установка завершена.

Git можно использовать в различных режимах. Ниже приведены некоторые способы запуска Git в вашей среде. Чтобы запустить Git Bash, откройте меню «Пуск» Windows, введите git bash , и нажмите Enter или щелкните значок приложения, как показано на изображении ниже.

Установите PATH так, чтобы он указывал на установку Git

Вам нужно будет установить (добавить) следующие пути к системной переменной, как показано ниже. Шаги, которые я буду описывать, абсолютно одинаковы для Windows 10 и Windows 11.

В меню "Пуск" нажмите "Настройки", как показано ниже.
– Кроме того, вы можете использовать поиск на панели задач, выполнить поиск по слову «переменная среды» или щелкнуть правой кнопкой мыши «Этот компьютер», а затем выбрать «Свойства».

Откроется окно настроек, как показано ниже. Нажмите Система

Перейдите в меню "О программе" и в правом окне нажмите "Дополнительные параметры системы" .

Нажмите на вкладку "Дополнительно", как показано ниже. Нажмите кнопку "Переменные среды" внизу.

Давайте создадим системную переменную . Для этого нажмите «Создать», как показано ниже.

Редактор ATH, добавьте C:\Program Files\Git\bin\ и C:\Program Files\Git\cmd\ в конец списка.

Как вы можете видеть ниже, системная переменная настроена и установлена.

Примечание. После создания вы можете выбрать системную переменную и нажать «Изменить», чтобы изменить путь. Теперь вы можете закрыть переменную среды. Вот аналогичное руководство, в котором обсуждается, как решить «Выполнение команд Docker возвращает Docker не распознается как внутренняя или внешняя команда».

Снова перезапустите GitLab Runner

Если вы не перезапустите GitLab-Runner, задание сборки все равно не удастся 🙂 Чтобы избежать этого, перезапустите GitLab-Runner, как показано ниже. Чтобы сделать это через командную строку, выполните шаги, описанные ниже.

Перейти через services.msc . Будет достигнут тот же результат.

Запустите задание сборки еще раз

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

Надеюсь, эта запись в блоге оказалась для вас полезной. Если у вас есть какие-либо вопросы, дайте мне знать в сеансе комментариев.

В этом руководстве показано, как установить Helm CLI. Helm можно установить либо из исходного кода, либо из готовых бинарных выпусков.

Из проекта Helm

Проект Helm предоставляет два способа получения и установки Helm. Это официальные способы получения выпусков Helm. Кроме того, сообщество Helm предоставляет способы установки Helm через различные менеджеры пакетов. Установку с помощью этих методов можно найти ниже официальных методов.

Из бинарных версий

Каждый выпуск Helm содержит бинарные версии для различных операционных систем. Эти двоичные версии можно загрузить и установить вручную.

  1. Загрузите нужную версию
  2. Распаковать его ( tar -zxvf helm-v3.0.0-linux-amd64.tar.gz )
  3. Найдите двоичный файл helm в распакованной папке и переместите его в нужное место ( mv linux-amd64/helm /usr/local/bin/helm )

Оттуда вы сможете запустить клиент и добавить стабильный репозиторий: helm help .

Примечание. Автоматические тесты Helm выполняются для Linux AMD64 только во время сборок и выпусков CircleCi. За тестирование других ОС отвечает сообщество, запрашивающее Helm для данной ОС.

Из скрипта

У Helm теперь есть сценарий установки, который автоматически загружает последнюю версию Helm и устанавливает ее локально.

Вы можете получить этот скрипт, а затем выполнить его локально. Он хорошо задокументирован, так что вы можете прочитать его и понять, что он делает, прежде чем запускать его.

Через менеджеры пакетов

Сообщество Helm предоставляет возможность установить Helm с помощью менеджеров пакетов операционной системы. Они не поддерживаются проектом Helm и не считаются доверенными сторонними организациями.

Из Homebrew (macOS)

Члены сообщества Helm предоставили сборку формулы Helm для Homebrew. Эта формула обычно актуальна.

(Примечание: существует также формула для emacs-helm, который является другим проектом.)

От Chocolatey (Windows)

Члены сообщества Helm предоставили сборку пакета Helm для Chocolatey. Обычно этот пакет обновлен.

Из Scoop (Windows)

Члены сообщества Helm предоставили сборку пакета Helm для Scoop. Обычно этот пакет обновлен.

Из Apt (Debian/Ubuntu)

Члены сообщества Helm предоставили пакет Helm для Apt. Обычно этот пакет обновлен.

Из Snap

Сообщество Snapcrafters поддерживает Snap-версию пакета Helm:

Из пакета (FreeBSD)

Члены сообщества FreeBSD внесли сборку пакета Helm в коллекцию портов FreeBSD. Обычно этот пакет обновлен.

Разработка

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

Из канареечных сборок

Сборки Canary — это версии программного обеспечения Helm, созданные на основе последней основной ветки. Они не являются официальными выпусками и могут быть нестабильными. Однако они дают возможность протестировать передовые функции.

Двоичные файлы Canary Helm хранятся по адресу get.helm.sh. Вот ссылки на распространенные сборки:

Из исходного кода (Linux, macOS)

Сборка Helm из исходного кода немного сложнее, но это лучший способ, если вы хотите протестировать последнюю (предварительную) версию Helm.

У вас должна быть рабочая среда Go.

При необходимости он извлекает зависимости и кэширует их, а также проверяет конфигурацию. Затем он скомпилирует helm и поместит его в bin/helm .

Заключение

В большинстве случаев установка так же проста, как получение предварительно собранного бинарного файла helm. Этот документ охватывает дополнительные случаи для тех, кто хочет делать более сложные вещи с помощью Helm.

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

Мы являемся выпускным проектом Cloud Native Computing Foundation.

© Helm Авторы 2022 | Документация, распространяемая по лицензии CC-BY-4.0

© 2022 Фонд Linux. Все права защищены. Linux Foundation зарегистрировала товарные знаки и использует товарные знаки. Список товарных знаков The Linux Foundation см. на нашей странице использования товарных знаков.

Читайте также: