"Path" env variable gets stomped - windows
Type: Bug
Windows environment variables are supposed to be case-insensitive; however, if VS Code is launched from a shell where the Path variable is PATH instead of Path (such as one created by Python), Code's environment will create a second Path variable instead of inheriting PATH from the parent shell.
Steps:
- Create a shell that uses
PATHinstead ofPath. The simplest way I found is to just create a shell from python:
# make_shell.py
import os
import subprocess
command = ["cmd", "/Q", "/K"]
print("Path is now PATH")
subprocess.call(command, shell=True, env=os.environ)
> python make_shell.py
Path is now PATH
> |
-
Launch VS Code from this new shell
-
Check your environment variables in the terminal
cmd: set path will show both PATH and Path -- modifications to PATH made upstream are not be reflected on Path
pwsh: trying to use dir env: will throw an error. Using write-host $env:path will show Path, and any changes to PATH upstream will be lost
Same effect occurs on Insider build. I don't know when exactly this behavior changed, but pre-configured shells are a pretty big piece of some developer tools we use
VS Code version: Code 1.97.2 (e54c774e0add60467559eb0d1e229c6452cf8447, 2025-02-12T23:20:35.343Z) OS version: Windows_NT x64 10.0.26100 Modes:
System Info
| Item | Value |
|---|---|
| CPUs | AMD Ryzen 9 7900X3D 12-Core Processor (24 x 4400) |
| GPU Status | 2d_canvas: enabled canvas_oop_rasterization: enabled_on direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok skia_graphite: disabled_off video_decode: enabled video_encode: enabled vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: enabled webnn: disabled_off |
| Load (avg) | undefined |
| Memory (System) | 63.73GB (44.66GB free) |
| Process Argv | |
| Screen Reader | no |
| VM | 0% |