Command Prompt / Console / Windows Subsystem for Linux (WSL)

Greetings from the Windows Command-Line Teams, including the Windows Console and Windows Subsystem for Linux (WSL) teams!

We’re hear to learn about the features you’d like to see in the Windows Console (the terminal app itself), Cmd and PowerShell shells, and the Windows Subsystem for Linux (WSL) upon which several Linux distros now run!

Note: Please don’t file bugs & issues here: file issues on our GitHub repos instead:

Windows Console & WSL Teams.

\$ | >

(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

• Hot ideas
• Top ideas
• New ideas
• My feedback
1. Pointer focus: it's is a key part of why command prompt is easier on Linux

Pointer focus means that instead of having to click on a window to give it focus, a window has focus when you hover over any visible part of it with the mouse, without disturbing it's place in the Zorder and therefore you can issue commands at a semi-background command prompt window without the disturbance of bringing it up in front of whatever other window(s) you are working with.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• add an optional clickable history view to the right

With F7 you can see the history in cmd windows...

Add a menu command or key (ctrl-h?) that toggles display of a history panel to the right (or customize) with your history and you can click it to update the current command to it, double click to execute it.

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

Wherever a file problem is encountered, the message generated should specify the full name of the file, not simply the word "file".

It would also be appreciated if ERRORLEVEL was set on a consistent basis for such errors - to explain quite why the error occurred. For instance, errorlevel 20 might mean file not found, 21 file is read-only, 22 permissions don't allow etc.

HIgh error numbers suggested so that the file-errors don't collide with "normal" errorlevels generated by utilities to indicate "found/not found (find(str) for instance)

And for a real advance, a report like

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• Some known command prompt bugs/missdocumentations.

Hello,

First to clarify that I didn't succeeded to install windows 10 with virtual box .
I'll list some bugs/missdocumentations in cmd.exe (and some internal commands) that are here for a long time and I suppose they still there in windows 10 too.

1. APPEND/DPATH

DPATH is a rather working command and allows you to use input redirection and type with files form different directories as they are in the same directory (http://ss64.org/viewtopic.php?id=1876 , http://ss64.org/viewtopic.php?id=1876)
The syntax is the same as PATH command and rellies on %DPATH% environment variable.
But its help message points to APPEND command which…

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• CMD.exe - PID

Could we have cmd's process ID available as a magic-variable in the environment, a la %time% %date% etc?

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

Can you guys add some line edit hotkey? like ctrl+a,cltrl+e ,cltr+u,ctrl+k etc , bash-style ,you know.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• CMD.exe -random

Currently, %random% is seeded for a CMD instance from the current second, so i more than one CMD process is generated in a second, each ill produce the same sequence of random numbers.

Windows should provide one sytem-wide source of random number accessible via an API. CMD would then simply be another process wanting random numbers from the common source. This would make this undesirable behaviour disappear.

T

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• CMD.exe - run silent, run deep

Could we have an option to run a batch without creating a taskbar item so that we don't have to use VBA jiggery-pokery to hide a batch?

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• CMD.exe - Indirection

Accessing the value of a variable whose name is stored in another variable means using something like

set var2=!%var1%!

which is painful and requires delayedexpansion.

It would be easier if this could be implemented as

set var2=%=var1%

Where the leading "=" indicates indirection and is currently an illegal or at least illogical construct.

So - %=var1% would be replaced by the parser with the parse-time content of (the name in var1) and !=var1! with the content of (the runtime content of var1)

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• Findstr option needed

Findstr needs an option to return the count-of-matches, like "FIND /C"

Since "C" is already occupied for FINDSTR, how about "/T" (for Total) - and implement the same "/T" as a synonym for "/C" in FIND?

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

Please add an easy way to tail a file, currently the command in power shell is too complicate to figure out and it has a lot of latency to show file changes. Implement it as same as in Linux ;)
tail -f myfile.txt

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• Ecko

Introduce a modified echo command (adding a switch to the existing may be awkward for backward-compatibility, so not an option...) but this ecko command does NOT issue a newline, allowing a report line to be built in segments rather than being accumulated into a variable and then displayed.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• Spinner

Permit a SPINNER [optionalstring] command

General structure:

spinner somestring
for ...(
spinner
)
spinner /end

where the first (optional) invocation sets a series of characters to be used as the spinner,

The second invocation, within (typically) a FOR loop advances the spinner to the next character in the string The spinner character replaces the cursor.

The third restores the initial cursor and resets the spinner string to the default "|/-\"

hence

for /l %%x in (1,1,8) do (
spinner
timeout /t 1 >nul
)
spinner /end

would replace the cursor with a spinner which changes once per second

spinner Microsoft …

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

Allow

set /r[character]

to replace input-characters with character (default "*") on the display for obscuring password-input, games, etc.

set /n

-similar, but does not show input at all so lenth-of-password is not visible.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• CMD.exe dates

All utilities dealing with date/time (dir date time for...%~d) should have switches for Universal date format (eg ISO 8601 YYYYMMDDTHHMMSS) local or UTC and created/updated/accessed filedates.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• Cross platform PowerShell

Make PowerShell cross platform so it can be used in build scripts and for automation with mono projects on all platforms.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• FOR /r bug in W7 (probably others)

FOR /r "%sourcedir%" %%a in (filename)

if filename is not ambiguous (ie. contains neither "*" nor "?") then the result will scan each subdirectory of sourcedir, assigning subdirname\filename to %%a - not as expected, finding those files that match the pattern filename.

if filename IS ambiguous (ie. contains "*" or "?") then the result will scan each subdirectory of sourcedir, assigning subdirname\actualfilenamematchingthemask to %%a

IMHO, the match should be against the (set) as a flemask.

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• cmd.exe FOR /f options

FOR /f should have attional options:

EACH : same as delims but each delimiter encountered should increment the token counter. Hence with 'delims=,' the text ,col2,col3,,,col6 would assign token1=col2; token2=col3; token3=col6 but 'each=,' would assign token2=col2; token3=col3; token6=col6 (as logical columns 1,4 and 5 ar missing)

Option QUOTE should be implemented to turn off recognition of delimiters within "q,u,o,t,e,s"

"SKIP=0" should be allowed

NEWLINE should be allowed to assign NO tokens on an empty line

LINENUM should assign the line number (32-bit limit, not 16-bit) to the LAST token+1. Thus "linenumtokens=1-3" %%A would assign the line number to %%D

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• CMD.exe - Timeout errorlevel

Currently, timout returns no errorlevel. It would be useful if timeout was to return the ASCII keycode for the interrupting key if it's interrupted by a keystroke.