CMDer Details
CMDer is a Windows frontend for the standard Windows Command Shell (aka cmd.exe). It supports ^C and ^V for Copy and Paste. It works by piping its input to a slave cmd.exe's stdin and it reads a pipe connected to stdout and writes that to the screen.
Bypass-cmd commands should always be Windows executables. CMDer spawns these Bypass-cmd commands using the Window API which searches for the executable file in the following sequence:
- The directory from which the CMDer.exe loaded - e.g. C:\bin
- The current directory for CMDer - e.g. C:\My Documents
- The 32-bit Windows system directory - usually C:\Windows\system32
- The 16-bit Windows system directory - usually C:\Windows\system
- The Windows directory - usually C:\Windows
- The directories that are listed in the PATH environment variable.
This order is probably different from your PATH environment variable, especially #1.
Also a command with a period in its name won't work unless the .exe is also given.
-
Cmder checks each command to determine if it is a Windows executable. If so, it is spawned with the string "[SPACE]sTaRT[TAB]" inserted before the command because Win/XP and earlier have problems spawning a Windows executable from a redirected, hidden CMD window - "sTaRTing them however fixes the problems. The "[SPACE]sTaRT[TAB]" is removed from the output window (that's why the string looks so weird - so it can be easily identified) so what you see is what you typed. However, since the Windows API SearchPath() does not work like CMD's PATH search (see above), it is possible that CMDer might identify a command as a Windows executable when it actually is not. This will result in the correct command being run - but in a separate CMD window, which can then be closed.
-
The initial environment that CMDer starts with is passed to the slave CMD every time. This means that if you use ^C to interrupt, the new CMD will have lost any changes to the environment made via SET or PATH. This problem will be addressed in a future release.
-
Like the environment, the system's drives' current directory information is what CMDer knows from when each drive was last the logged drive. This problem will be addressed at the same time the environment problem is addressed.
-
The output window flashes way more than it should. I'll get around to fixing soon, I hope.
- TAB widths are not being calculated correctly. Geez, M$ makes things dificult; will rework using their strangness.
-
When you use ^C to interrupt a command, the slave CMD is terminated - hopefully. In case there is a problem, the slave CMD window is shown, if it was hidden, just before the attempt to terminate it. That way you can close it manually if it sticks around.
Back to Cmder Help
If you find any bugs or wish any new features, send me an email.
Leigh Brasington