Как задать аргументы командной строки в visual studio
Visual Studio Code has a powerful command-line interface built-in that lets you control how you launch the editor. You can open files, install extensions, change the display language, and output diagnostics through command-line options (switches).
If you are looking for how to run command-line tools inside VS Code, see the Integrated Terminal.
Command line help
To get an overview of the VS Code command-line interface, open a terminal or command prompt and type code —help . You will see the version, usage example, and list of command line options.
Launching from command line
You can launch VS Code from the command line to quickly open a file, folder, or project. Typically, you open VS Code within the context of a folder. To do this, from an open terminal or command prompt, navigate to your project folder and type code . :
Note: Users on macOS must first run a command (Shell Command: Install ‘code’ command in PATH) to add VS Code executable to the PATH environment variable. Read the macOS setup guide for help.
Windows and Linux installations should add the VS Code binaries location to your system path. If this isn’t the case, you can manually add the location to the Path environment variable ( $PATH on Linux). For example, on Windows, VS Code is installed under AppData\Local\Programs\Microsoft VS Code\bin . To review platform-specific setup instructions, see Setup.
Insiders: If you are using the VS Code Insiders preview, you launch your Insiders build with code-insiders .
Core CLI options
Here are optional arguments you can use when starting VS Code at the command line via code :
Argument | Description |
---|---|
-h or —help | Print usage |
-v or —version | Print VS Code version (for example, 1.22.2), GitHub commit ID, and architecture (for example, x64). |
-n or —new-window | Opens a new session of VS Code instead of restoring the previous session (default). |
-r or —reuse-window | Forces opening a file or folder in the last active window. |
-g or —goto | When used with file:line , opens a file at a specific line and optional character position. This argument is provided since some operating systems permit : in a file name. |
-d or —diff | Open a file difference editor. Requires two file paths as arguments. |
-w or —wait | Wait for the files to be closed before returning. |
—locale <locale> | Set the display language (locale) for the VS Code session. (for example, en-US or zh-TW ) |
Opening Files and Folders
Sometimes you will want to open or create a file. If the specified file does not exist, VS Code will create them for you along with any new intermediate folders:
For both files and folders, you can use absolute or relative paths. Relative paths are relative to the current directory of the command prompt where you run code .
If you specify more than one file at the command line, VS Code will open only a single instance.
If you specify more than one folder at the command line, VS Code will create a Multi-root Workspace including each folder.
Argument | Description |
---|---|
file | Name of a file to open. If the file doesn’t exist, it will be created and marked as edited. You can specify multiple files by separating each file name with a space. |
file:line[:character] | Used with the -g argument. Name of a file to open at the specified line and optional character position. |
folder | Name of a folder to open. You can specify multiple folders and a new Multi-root Workspace is created. |
Working with extensions
You can install and manage VS Code extensions from the command line.
Argument | Description |
---|---|
—install-extension <ext> | Install an extension. Provide the full extension name publisher.extension as an argument. Use —force argument to avoid prompts. |
—uninstall-extension <ext> | Uninstall an extension. Provide the full extension name publisher.extension as an argument. |
—disable-extensions | Disable all installed extensions. Extensions will still be visible in the Disabled section of the Extensions view but they will never be activated. |
—list-extensions | List the installed extensions. |
—show-versions | Show versions of installed extensions, when using —list-extensions |
—enable-proposed-api <ext> | Enables proposed api features for an extension. Provide the full extension name publisher.extension as an argument. |
Advanced CLI options
There are several CLI options that help with reproducing errors and advanced setup.
Argument | Description |
---|---|
—extensions-dir <dir> | Set the root path for extensions. Has no effect in Portable Mode. |
—user-data-dir <dir> | Specifies the directory that user data is kept in, useful when running as root. Has no effect in Portable Mode. |
-s, —status | Print process usage and diagnostics information. |
-p, —performance | Start with the Developer: Startup Performance command enabled. |
—disable-gpu | Disable GPU hardware acceleration. |
—verbose | Print verbose output (implies —wait ). |
—prof-startup | Run CPU profiler during startup. |
—upload-logs | Uploads logs from current session to a secure endpoint. |
Multi-root | |
—add <dir> | Add folder(s) to the last active window for a multi-root workspace. |
Opening VS Code with URLs
You can also open projects and files using the platform’s URL handling mechanism. Use the following URL formats to:
Open a file to line and column
You can use the URL in applications such as browsers or file explorers that can parse and redirect the URL. For example, on Windows, you could pass a vscode:// URL directly to the Windows Explorer or to the command line as start vscode:// .
Note: If you are using VS Code Insiders builds, the URL prefix is vscode-insiders:// .
Next steps
Read on to find out about:
-
— Run command-line tools from inside VS Code. — Learn the basics of the VS Code editor. — VS Code lets you quickly understand and move through your source code.
Common questions
‘code’ is not recognized as an internal or external command
Your OS cannot find the VS Code binary code on its path. The VS Code Windows and Linux installations should have installed VS Code on your path. Try uninstalling and reinstalling VS Code. If code is still not found, consult the platform-specific setup topics for Windows and Linux.
On macOS, you need to manually run the Shell Command: Install ‘code’ command in PATH command (available through the Command Palette ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ). Consult the macOS specific setup topic for details.
How do I get access to a command line (terminal) from within VS Code?
VS Code has an Integrated Terminal where you can run command-line tools from within VS Code.
Can I specify the settings location for VS Code in order to have a portable version?
Not directly through the command line, but VS Code has a Portable Mode, which lets you keep settings and data in the same location as your installation, for example, on a USB drive.
Использование аргументов командной строки в С
Аргумент командной строки – это информация , которая вводится в командной строке операционной системы вслед за именем программы [21.1].
В системных средах, поддерживающих язык программирования С, существует способ передавать в программу аргументы или параметры командной строки при запуске программы на выполнение [21.2]. Для этого в главную функцию main() включают два аргумента, обычно argc и argv. Первый (от argument count – счетчик аргументов) содержит количество аргументов командной строки , с которыми была запущена программа . Второй (от argument vector – вектор аргументов) указывает на массив символьных строк, содержащих сами аргументы, – по одному в строке. В общем случае имена аргументов могут быть произвольными.
Формально можно определить следующий прототип функции main() с параметрами:
Второй параметр функции main() выражает собой многоуровневую систему указателей. В связи с этим можно определить другой способ задания параметров функции main(), а именно
Каждый указатель на значение типа char ссылается на одну из строк командной строки, при этом argv[0] указывает на имя команды (исполняемой программы), argv[1] – на первый аргумент командной строки, argv[2] – на второй аргумент и так далее [21.3].
В качестве принимаемых аргументов командной строки могут быть исполняемые файлы. Можно из программы запустить на выполнение другую программу, запустить новый процесс. Для этого существуют специальные функции библиотеки «C Run–Time Library Reference » системы Visual Studio (которую используем в качестве компилятора языка С ).
Командная оболочка операционной системы Windows использует интерпретатор команд cmd.exe, который загружает приложения и направляет поток данных между приложениями, для перевода введенной команды в понятный системе код. Консоль командной строки присутствует во всех версиях операционных систем Windows .
В среде разработки MS Visual Studio 2010 аргументы командной строки можно задать в самой среде, для чего следует произвести соответствующую настройку. Например, предположим, что мы хотим создать проект под именем tcmd, чтобы он принимал аргументы командной строки , например, » Example 1″ и E:\forma.exe. Для этого после (или во время) создания проекта обратиться к закладке, показанной на рис. 21.1.
Параметры или аргументы командной строки должны вводиться через пробелы. В случае, если параметр представляет собой строку с пробелами, то его следует взять в двойные кавычки.
Использование указанной возможности интегрированной среды разработки позволяет произвести отладку программы с аргументами командной строки. В дальнейшем задание параметров в соответствии с рис. 21.1 не обязательно. Программа должна сама подхватывать аргументы командной строки , определенные с помощью утилиты cmd.exe (просто cmd) операционной системы.
Командную строку операционной системы Windows можно запустить следующими способами:
- Пуск
Программы (все программы)
Стандартные
Командная строка
- Пуск
Выполнить
(ввести) cmd
Параметры, представленные на рис. 21.1, можно ввести из командной строки операционной системы Windows , как показано на рис. 21.2.
Доступ к аргументам командной строки в C#
В статье рассмотрены два основных подхода, доступных “из коробки” в C# , которые можно использовать для работы с аргументами командной строки.
- Запуск приложения с аргументами
- Запуск приложения с аргументами в режиме отладки в Visual Studio
- Работа с аргументами командной строки
- Классический способ
Запуск приложения с аргументами
Дополнительные аргументы у программ могут быть использованы для указания на входные данные, которые нужно обработать, задания параметров, определяющих ее функционирование и т.п. Если вы работали с каким-нибудь консольным приложением, то, наверняка, сталкивались с этим.
Например, в Linux , команда просмотра содержимого каталога ls при запуске с параметром -l представит содержимое в виде списка. Утилите cat нужно передать в качестве аргумента имя файла, вот так: cat some_file.txt , и она выведет его содержимое в окно консоли. В Windows консоль используется не так активно, как в Linux , но и тут практически у всех приложений такого типа есть специальные ключи, например, аналог команды ls , команда dir может быть запущена с ключом /b следующим образом: dir /b , в результате будут показаны только названия каталогов, файлы будут пропущены. Графические приложения тоже могут иметь аргументы, для их использования, как правило, создается ярлык, запускающий приложение, в свойствах которого, в поле “Объект” указываются необходимые аргументы.
Запуск приложения с аргументами в режиме отладки в Visual Studio
При разработке в Visual Studio, для запуска приложения в режиме отладки с различными аргументами, необходимо их предварительно указать в свойствах проекта, для этого:
- В окне “ Solutions ” нажмите правой кнопкой на узел проекта и выберите в меню поле свойства – “ Properties ”.
- В появившемся окне перейдите на вкладку Debug.
- Аргументы, с которыми будет запущено приложение в режиме отладки, можете указать в области Command line arguments .
Работа с аргументами командной строки
Классический способ
Чаще всего с аргументами командной строки приходится работать, если вы разрабатываете консольное приложение. В этом случае, доступ к переданным аргументам проще всего получить через переменную args, которая является аргументом метода Main , вызываемого по-умолчанию первым при старте приложения. Если, конечно, вы не изменили данное поведение. Вот пример кода, в рамках которого выводятся в консоль переданные приложению аргументы.
11.11 – Аргументы командной строки
Как вы узнали из урока «0.4 – Введение в разработку на C++», при компиляции и компоновке программы на выходе получается исполняемый файл. Когда программа запускается, выполнение начинается с функции main() . До этого момента мы объявляли main следующим образом:
Обратите внимание, что эта версия main() не принимает параметров. Однако для работы со многими программами требуются какие-то входные данные. Например, предположим, что вы пишете программу под названием Thumbnail , которая считывает файл изображения, а затем создает миниатюру (уменьшенную версию этого изображения). Как Thumbnail узнает, какое изображение прочитать и обработать? Пользователь должен каким-то образом указать программе, какой файл открыть. Для этого вы можете использовать следующий подход:
Однако при таком подходе есть потенциальная проблема. Каждый раз, когда программа запускается, она будет ждать, пока пользователь введет данные. Это может не быть проблемой, если вы запускаете эту программу один раз вручную из командной строки. Но это проблематично в других случаях, например, когда вы хотите запустить эту программу для многих файлов или запустить ее другой программой.
Давайте рассмотрим эти случаи подробнее.
Рассмотрим случай, когда вы хотите создать миниатюры для всех файлов изображений в заданном каталоге. Как бы вы это сделали? Вы можете запускать эту программу столько раз, сколько изображений в каталоге, печатая имя каждого файла вручную. Однако если бы изображений были сотни, это могло бы занять целый день! Хорошим решением здесь было бы написать программу, которая перебирает имя каждого файла в каталоге, вызывая Thumbnail один раз для каждого файла.
Теперь рассмотрим случай, когда вы запускаете веб-сайт и хотите, чтобы на вашем сайте создавался эскиз каждый раз, когда пользователь загружает изображение на ваш сайт. Эта программа не настроена для приема входных данных из Интернета, так как же человек, загружающий файл, будет вводить имя файла в этом случае? Хорошим решением здесь было бы, чтобы ваш веб-сервер автоматически вызывал Thumbnail после загрузки.
В обоих этих случаях нам нужен способ, чтобы внешняя программа могла передавать имя файла в качестве входных данных для нашей программы Thumbnail при ее запуске, а не заставлять Thumbnail ждать после запуска, пока пользователь введет имя файла.
Аргументы командной строки – это необязательные строковые аргументы, которые операционная система передает программе при ее запуске. Затем программа может использовать их в качестве входных данных (или игнорировать). Подобно параметрам функции, которые позволяют функции предоставлять входные данные для другой функции, аргументы командной строки позволяют людям или программам предоставлять входные данные программе.
Передача аргументов командной строки
Исполняемые программы можно запускать из командной строки, вызывая их по имени. Например, чтобы запустить исполняемый файл " WordCount ", который находится в корневом каталоге диска C: на компьютере с Windows, вы можете ввести:
Чтобы передать аргументы командной строки в WordCount , мы просто перечисляем их после имени исполняемого файла:
Теперь при выполнении WordCount Myfile.txt будет предоставлен в качестве аргумента командной строки. Программа может иметь несколько аргументов командной строки, разделенных пробелами:
Это также работает и в других операционных системах командной строки, таких как Linux (хотя приглашение и структура каталогов, несомненно, будут отличаться).
Если вы запускаете свою программу из среды IDE, в среде IDE должен быть предусмотрен способ ввода аргументов командной строки.
В Microsoft Visual Studio кликните правой кнопкой мыши на своем проекте в обозревателе решений и выберите «Свойства» (Properties). В открывшемся окне разверните дерево «Свойства конфигурации» (Configuration Properties) и выберите «Отладка» (Debugging). На правой панели есть строка с названием «Аргументы команды» (Command Arguments). Вы можете ввести туда аргументы командной строки для тестирования, и они будут автоматически переданы вашей программе при ее запуске.
Рисунок 1 – Задание аргументов командной строки в Microsoft Visual Studio
В Code::Blocks выберите «Project» (Проект) → «Set program’s arguments» (Установить аргументы программы).
Рисунок 2 – Задание аргументов командной строки в Code::Blocks
Использование аргументов командной строки
Теперь, когда вы знаете, как предоставить программе аргументы командной строки, следующим шагом будет доступ к ним из нашей программы на C++. Для этого мы используем другую форму main() . Эта новая форма main() принимает два аргумента (по соглашению названные argc и argv ) следующим образом:
Иногда вы также можете увидеть и такое:
Несмотря на то, что они обрабатываются одинаково, мы предпочитаем первое представление, потому что его интуитивно легче понять.
argc – это целочисленный параметр, содержащий счетчик числа аргументов, переданных программе ( argc = argument count, число аргументов). argc всегда будет не меньше 1 потому, что первым аргументом всегда является имя самой программы. Каждый аргумент командной строки, предоставляемый пользователем, приведет к увеличению argc на 1.
argv – это место, где хранятся фактические значения аргументов ( argv = argument values, значения аргументов, хотя на самом деле расшифровывается как «argument vectors»). Хотя объявление argv выглядит устрашающе, на самом деле argv представляет собой просто массив строк в стиле C. Длина этого массива – argc .
Давайте напишем короткую программу с именем MyArgs для вывода значений всех параметров командной строки:
Теперь, когда мы вызываем эту программу ( MyArgs ) с аргументами командной строки " Myfile.txt " и " 100 ", вывод будет следующим:
Аргумент 0 – это путь и имя текущей запущенной программы. Аргументы 1 и 2 в данном случае – это два параметра командной строки, которые мы передали.
Работа с числовыми аргументами
Аргументы командной строки всегда передаются в виде строк, даже если предоставленное значение является числовым. Чтобы использовать аргумент командной строки в качестве числа, вы должны преобразовать его из строки в число. К сожалению, C++ делает это немного сложнее, чем должно быть.
В C++ это можно сделать следующим образом:
При запуске с вводом " 567 " эта программа печатает:
std::stringstream работает так же, как std::cin . В этом случае мы инициализируем его значением argv[1] , и поэтому можем использовать operator>> для извлечения значения в целочисленную переменную (так же, как и с std::cin ).
Подробнее о std::stringstream мы поговорим в следующей главе.
Операционная система анализирует аргументы командной строки первой
Когда вы вводите что-то в командной строке (или запускаете свою программу из IDE), операционная система должна преобразовать и направить этот запрос соответствующим образом. Это не только включает в себя запуск исполняемого файла, но также включает анализ любых аргументов, чтобы определить, как они должны обрабатываться и передаваться приложению.
Как правило, в операционных системах действуют особые правила обработки специальных символов, таких как двойные кавычки и обратный слеш.
Обычно строки, переданные в двойных кавычках, считаются частью одной строки:
Если вы хотите включить двойную кавычку в состав строки, вам нужно поставить перед двойной кавычкой обратный слеш:
Заключение
Аргументы командной строки предоставляют пользователям и другим программам отличный способ передать входные данные в программу при запуске. Рассмотрите возможность использования любых входных данных, необходимых для работы программы при запуске, в качестве параметров командной строки. Если они не будут переданы через командную строку, вы всегда можете обнаружить это и попросить пользователя ввести данные. Таким образом, ваша программа сможет работать в любом случае.
Как задать аргументы командной строки в Visual Studio
Иногда нужно, чтобы программа выполняла разные действия в зависимости от заданных параметров при запуске. Для этого используется механизм аргументов командной строки. Чтобы задать аргументы достаточно написать их в консоли после имени запускаемой программы. Однако при работе в интегрированной среде разработки Visual Studio вы не запускаете программу через консоль самостоятельно, так как этим занимается сама студия. К сожалению, далеко не очевидно, каким образом задавать аргументы командной строки в Visual Studio. Конечно, можно просто открыть консоль, перейти в папку с проектом и запустить приложение прямо оттуда, передав нужные аргументы, однако есть способ сделать это прямо в среде разработки. Так давайте разберёмся ним и научимся передавать аргументы прямо из студии, не запуская консоль и не ища расположение запускаемого проекта.
Шаг первый. Создаём новый С++ проект
Если вы не знаете, как создать новый проект, прочитайте нашу статью об этом: Как создать C/C++ проект в Visual Studio.
Студия создаст проект и открое редактор кода, в котором будет примерно следующее:
Шаг второй. Пишем код для отображения переданных аргументов
Напишем простую программу, которая будет выводить все аргументы командной строки кроме имени запускаемого файла или выводить сообщение «no arguments», если аргументы не будут переданы. Для проверки количества аргументов проверим значение argc. Если оно равно 1, то аргументы помимо имени исполняемого файла не переднаны и необходимо вывести сообщение об этом. в противном же случае пройдёмся по всем аргументам, начиная со второго (с первого, если считать от нуля) и выведим содержимое каждого из них:
Запустим приложение и убедимся, что ни одного аргумента помимо имени программы передано не было:
Шаг третий. Задание аргументов командной строки
Чтобы передать аргументы командной строки в Visual Studio нужно:
- Выбрать в верхнем меню панель Проект;
- В появившейся вкладке выбрать Свойства;
- В открывшемся окне выбрать Отладка
- В правой части задать аргументы в поле Аргументы команды
Напишем там какие-нибудь аргументы для проверки и ещё раз запустим приложение
Программа вывела все аргументы, которые только что были переданы. А значит мы научились задавать параметры командной строки прямо в Visual Studio.
Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов
Языки программирования: Python, C, C++, Pascal, C#, Javascript
Выпускник МГУ им. М.В. Ломоносова
Programforyou — это сообщество, в котором Вы можете подтянуть свои знания по программированию, узнать, как эффективно решать те или иные задачи, а также воспользоваться нашими онлайн сервисами.
Использование аргументов командной строки в С
Аргумент командной строки – это информация , которая вводится в командной строке операционной системы вслед за именем программы [21.1].
В системных средах, поддерживающих язык программирования С, существует способ передавать в программу аргументы или параметры командной строки при запуске программы на выполнение [21.2]. Для этого в главную функцию main() включают два аргумента, обычно argc и argv. Первый (от argument count – счетчик аргументов) содержит количество аргументов командной строки , с которыми была запущена программа . Второй (от argument vector – вектор аргументов) указывает на массив символьных строк, содержащих сами аргументы, – по одному в строке. В общем случае имена аргументов могут быть произвольными.
Формально можно определить следующий прототип функции main() с параметрами:
Второй параметр функции main() выражает собой многоуровневую систему указателей. В связи с этим можно определить другой способ задания параметров функции main(), а именно
Каждый указатель на значение типа char ссылается на одну из строк командной строки, при этом argv[0] указывает на имя команды (исполняемой программы), argv[1] – на первый аргумент командной строки, argv[2] – на второй аргумент и так далее [21.3].
В качестве принимаемых аргументов командной строки могут быть исполняемые файлы. Можно из программы запустить на выполнение другую программу, запустить новый процесс. Для этого существуют специальные функции библиотеки «C Run–Time Library Reference » системы Visual Studio (которую используем в качестве компилятора языка С ).
Командная оболочка операционной системы Windows использует интерпретатор команд cmd.exe, который загружает приложения и направляет поток данных между приложениями, для перевода введенной команды в понятный системе код. Консоль командной строки присутствует во всех версиях операционных систем Windows .
В среде разработки MS Visual Studio 2010 аргументы командной строки можно задать в самой среде, для чего следует произвести соответствующую настройку. Например, предположим, что мы хотим создать проект под именем tcmd, чтобы он принимал аргументы командной строки , например, » Example 1″ и E:\forma.exe. Для этого после (или во время) создания проекта обратиться к закладке, показанной на рис. 21.1.
Параметры или аргументы командной строки должны вводиться через пробелы. В случае, если параметр представляет собой строку с пробелами, то его следует взять в двойные кавычки.
Использование указанной возможности интегрированной среды разработки позволяет произвести отладку программы с аргументами командной строки. В дальнейшем задание параметров в соответствии с рис. 21.1 не обязательно. Программа должна сама подхватывать аргументы командной строки , определенные с помощью утилиты cmd.exe (просто cmd) операционной системы.
Командную строку операционной системы Windows можно запустить следующими способами:
- Пуск
Программы (все программы)
Стандартные
Командная строка
- Пуск
Выполнить
(ввести) cmd
Параметры, представленные на рис. 21.1, можно ввести из командной строки операционной системы Windows , как показано на рис. 21.2.