I believe what you want is to install an extension as .vsix file. Documentation here. Copied for reference.
You can manually install an VS Code extension packaged in a .vsix
file. Simply install using the VS Code command line providing the path
to the .vsix file.
The extension will be installed under your user .vscode/extensions
folder. You may provide multiple .vsix files on the command line to
install multiple extensions at once.
To make it easier to automate and configure VS Code, it is possible to list, install, and uninstall extensions from the command line. When identifying an extension, provide the full name of the form publisher.extension, for example donjayamanne.python.
To add to Shan Khan's answer above, if you want to install extensions in a .bat file, you have to use the call keyword, otherwise your script exits after the extension installation completes. Also, if code.exe is not already in the path and you are calling using a full path, make sure you're pointing at the /bin directory:
echo.
echo.
echo Installing VS Code Extensions...
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension ritwickdey.liveserver
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension ritwickdey.live-sass
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension ms-vscode.csharp
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension PKief.material-icon-theme
echo Done.
echo.
echo.
First, find the fully qualified extension name. To do this, you can right-click a given extension, and select 'Copy Extension Id' (while in the extensions pane).
Since the other answers already illustrate .BAT/.CMD syntax, here's an example of installing extensions using a Powershell script (which can of course be executed from CMD).
The PowerShell script provided by @derekbaker783 didn't worked for me, it throws an exception related that "Code" is not a cmdlet, so I'll share an alternative that worked for me:
$vsCodeExec = ($Env:PROGRAMFILES) + "\Visual Studio Code\Bin\code.cmd"
$extensions = @(
"ms-vscode.cpptools", # C/C++ Language Support
"ms-dotnettools.csharp", # C# Language Support
"dbankier.vscode-instant-markdown", # Markdown Language Support
"ms-vscode.powershell", # PowerShell Language Support
"ms-python.python", # Python Language Support
"rebornix.ruby", # Ruby Language Support
"spences10.vba", # VBA Language Support
"luggage66.vbscript", # VBScript Language Support
"gordonwalkedby.vbnet", # VB.NET Language Support
"dotjoshjohnson.xml", # XML Language Support
"abusaidm.html-snippets", # HTML Snippets
"ecmel.vscode-html-css", # CSS Intellisense for HTML
"formulahendry.code-runner", # Code Runner
"ms-vscode-remote.remote-wsl", # VSCode Remote - WSL
"vscode-icons-team.vscode-icons", # Icons for VSCode
"ms-vscode.vs-keybindings", # Visual Studio Keymap for VSCode
"abhiagr.livs" # Open/Launch in Visual Studio
) | SORT
$extensions | ForEach-Object {
try {
Invoke-Expression "& '$vsCodeExec' --install-extension $_ --force"
Write-Host # New-Line
} catch {
$_
Exit(1)
}
}
Exit(0)
In a Microsoft tutorial "[https://learn.microsoft.com/de-de/azure/azure-signalr/signalr-tutorial-authenticate-azure-functions][1]" they show the following: