MINOR: Environment Variable in CMD Prompt not resolved. #11216

Closed
opened 2026-01-31 02:41:39 +00:00 by claunia · 7 comments
Owner

Originally created by @FDFessler on GitHub (Oct 29, 2020).

This is VERY MINOR: Environment Variable in CMD Prompt not resolved.

Environment

Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
Microsoft Windows [Version 10.0.19041.572]
Windows Terminal version (if applicable):
Windows Terminal Preview
Version: 1.4.2652.0
Settings for Command Prompt:
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command Prompt",
                "commandline": "cmd.exe",
                "startingDirectory": "P:\\",
                "hidden": false

Any other software?

Steps to reproduce

Launch Command Prompt in WT

Expected behavior

While I have a fairly long (and "crazy") prompt string in my environment settings it seems to do everything right except resolve an environment name (in this case my PC name %ComputerName%).
Current Prompt:
$E[1;33;45m[$D--$T$H$H$H$H$H$H]$S$E[7;33;44m$C$N:$Q$M$H$F$$E[0;34;47m$P$E[0;37;44m$[%ComputerName%]:$S$+$G$S
Prompt should look like this:
[10/29/2020-- 9:38] (P:=\ServerName\Dir1\Dir2)
P:
[MyActualPCName]: >

Actual behavior

I get this (with all the correct colors) but the %ComputerName% is not resolved.
[10/29/2020-- 9:32] (P:=\ServerName\Dir1\Dir2)
P:
[%ComputerName%]: >

Originally created by @FDFessler on GitHub (Oct 29, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> This is VERY MINOR: Environment Variable in CMD Prompt not resolved. # Environment ```none Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd] Microsoft Windows [Version 10.0.19041.572] Windows Terminal version (if applicable): Windows Terminal Preview Version: 1.4.2652.0 Settings for Command Prompt: // Make changes here to the cmd.exe profile. "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", "name": "Command Prompt", "commandline": "cmd.exe", "startingDirectory": "P:\\", "hidden": false Any other software? ``` # Steps to reproduce <!-- A description of how to trigger this bug. --> Launch Command Prompt in WT # Expected behavior <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> While I have a fairly long (and "crazy") prompt string in my environment settings it seems to do everything right except resolve an environment name (in this case my PC name %ComputerName%). Current Prompt: $E[1;33;45m[$D--$T$H$H$H$H$H$H]$S$E[7;33;44m$C$N:$Q$M$H$F$_$E[0;34;47m$P$E[0;37;44m$_[%ComputerName%]:$S$+$G$S Prompt should look like this: [10/29/2020-- 9:38] (P:=\\ServerName\Dir1\Dir2) P:\ [**MyActualPCName**]: > # Actual behavior <!-- What's actually happening? --> I get this (with all the correct colors) but the %ComputerName% is not resolved. [10/29/2020-- 9:32] (P:=\\ServerName\Dir1\Dir2) P:\ [**%ComputerName%**]: >
claunia added the Resolution-DuplicateProduct-Cmd.exe labels 2026-01-31 02:41:39 +00:00
Author
Owner

@zadjii-msft commented on GitHub (Oct 29, 2020):

So here's the weird thing with the PROMPT command - environment variables in it are only expanded when the command is run, not when the prompt is displayed. So when you do:

PROMPT %COMPUTERNAME%$g

cmd evaluates %COMPUTERNAME% to whatever (in my case, MIGRIE-SLAPTOP, then sets the prompt to MIGRIE-SLAPTOP$g

image

So I'm betting that your prompt variable literally has %ComputerName% in it, rather than the evaluated value of %ComputerName%, right?

@zadjii-msft commented on GitHub (Oct 29, 2020): So here's the weird thing with the PROMPT command - environment variables in it are only expanded when the command is run, _not_ when the prompt is displayed. So when you do: ```cmd PROMPT %COMPUTERNAME%$g ``` cmd evaluates `%COMPUTERNAME%` to whatever (in my case, `MIGRIE-SLAPTOP`, _then_ sets the prompt to `MIGRIE-SLAPTOP$g` ![image](https://user-images.githubusercontent.com/18356694/97584669-42cecc00-19c6-11eb-9c64-c13afb96d86b.png) So I'm betting that your prompt variable literally has `%ComputerName%` in it, rather than the evaluated value of `%ComputerName%`, right?
Author
Owner

@FDFessler commented on GitHub (Oct 29, 2020):

That is correct and is what I posted above.
It works if I just open a "normal" CMD prompt however. So, I'm OK if this is a limitation, just wanted to make sure this was not an "oversite".
You can duplicate the problem very easily by setting your Prompt environment string to just %ComputerName%$g
... and then seeing the difference between standard CMD prompt and WT CMD prompt.

@FDFessler commented on GitHub (Oct 29, 2020): That is correct and is what I posted above. It works if I just open a "normal" CMD prompt however. So, I'm OK if this is a limitation, just wanted to make sure this was not an "oversite". You can duplicate the problem very easily by setting your Prompt **environment** string to just %ComputerName%$g ... and then seeing the difference between standard CMD prompt and WT CMD prompt.
Author
Owner

@DHowett commented on GitHub (Oct 29, 2020):

This is likely a side effect of us giving CMD a new environment block. I swear sometimes, this OS is too fragile to write code for.

@DHowett commented on GitHub (Oct 29, 2020): This is likely a side effect of us giving CMD a new environment block. I swear sometimes, this OS is too fragile to write code for.
Author
Owner

@FDFessler commented on GitHub (Oct 29, 2020):

This NOT a big deal (very minor IMO), I can just run my prompt manually after opening the COMMAND Prompt windows in WT. Like I said earlier, just wanted to make sure this was not an "oversite".
Thanks.

@FDFessler commented on GitHub (Oct 29, 2020): This NOT a big deal (very minor IMO), I can just run my prompt manually after opening the COMMAND Prompt windows in WT. Like I said earlier, just wanted to make sure this was not an "oversite". Thanks.
Author
Owner

@LuanVSO commented on GitHub (Nov 1, 2020):

this works for me
image
don't know why though ¯\_(ツ)_/¯

@LuanVSO commented on GitHub (Nov 1, 2020): this works for me ![image](https://user-images.githubusercontent.com/43626415/97808853-090cf800-1c48-11eb-9ad3-591b805b51fb.png) don't know why though ¯\\\_(ツ)_/¯
Author
Owner

@DHowett commented on GitHub (Nov 20, 2020):

Alright, after sitting on this issue for a while I've come to a conclusion.

This is technically the same as #7418, but for a different reason. The solution to both is the same, however: we have to do a 3-way merge and expand the environment block in Terminal before we start the next process.

Thanks 😄

/dup #7418

@DHowett commented on GitHub (Nov 20, 2020): Alright, after sitting on this issue for a while I've come to a conclusion. This is technically the same as #7418, but for a different reason. The solution to both is the same, however: _we have to do a 3-way merge **and** expand the environment block in Terminal before we start the next process._ Thanks :smile: /dup #7418
Author
Owner

@ghost commented on GitHub (Nov 20, 2020):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Nov 20, 2020): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#11216