Scott Hanselman

Prompt(s) along with PushD and PopD

January 21, '05 Comments [6] Posted in ASP.NET
Sponsored By

Let this post serve as a reminder to me (and you if you don't use it all the time) that PUSHD and POPD are available in Windows.

Certainly TAB AutoCompletion is a goodness (it KILLS me when I have to watch someone, especially on stage, type long dirs and files one char at a time) and folks often forget that you can even do more tricky things like:

C:\TEMP>type my*.ofx (now PRESS TAB)

and get:

C:\TEMP>type myfiledata.ofx

but you can also

C:\TEMP>pushd .
C:\TEMP>cd "\Documents and Settings\shanselm\Desktop"
C:\Documents and Settings\shanselm\Desktop>popd
C:\TEMP>

Shawn Van Ness via Craig Andera make this tip even more useful when combined with their command PROMPT environment variable (Remember when "Customizing Your OS" consisted of 10-line long PROMPT statements in 4DOS? Ah, the good not-quite-old days.) From Craig's post:

$P$_$+$G

Which, when I set it via either the prompt command or the PROMPT environment variable, gives me a command line that looks like this:

C:\data\Projects\flexwiki\FlexWikiCore
++>

The plusses indicate that I'm two levels deep in pushd, and I like that the working directory appears on the line before, obliterating the problem of long paths making commands linewrap. Nice!

 What a nice series of tips for a random Thursday. Thanks guys!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Friday, January 21, 2005 1:30:06 AM UTC
Imagine if ---

Command Prompt had intellisense :).
We have a graphical command prompt.
If would be possible to write your own "prompt" plugins for it.
If this command prompt accepted a subset of VB.NET - no inheritance, just plain procedural code.
If it'd be possible to stream to and from files using < and > operators (like Unix).

Now that's a command prompt of 2005 !! :)
Friday, January 21, 2005 8:00:22 AM UTC
As a fellow cmd junky, I feel compelled to point out that "pushd somewhere\else" is equivalent to "pushd . && cd somewhere\else." Sorry for being nitpicky.

There are alot of unix tools at http://sourceforge.net/projects/gnuwin32/ that help making cmd'ing more fun. For example, there is an xargs for windows, GNU find, sed, grep, etc.

I sooo wish we had intellisense in the cmd shell, or at least a more powerful cmd shell like tcsh or bash. Idioms like "^old^new" to edit the previous cmd are dearly missed.
Saturday, January 22, 2005 3:04:25 AM UTC
The other fantastic thing about pushd is that you can pushd to a UNC share it will automatically map a temporary drive and change to it, just like this:

pushd \\servername\sharename\directory

Also, in addition to gnuwin32 mentioned by Chris, UnxUtils is also worth a look.
Sunday, January 23, 2005 4:54:27 PM UTC
William - You Rock! I didn't know you could pushd a UNC path. Awesome!
Monday, January 24, 2005 1:36:23 AM UTC
Type in path names for a command prompt? On stage? No, no, no.

Just have an Explorer window open to the directory that contains the directory or file you want in the command prompt. Then when you want the path, drag the directory or file you want and drop it in the command window. Voila, the name of the directory or file, conveniently bounded by quotes, will be there.

Billy
Wednesday, January 26, 2005 1:07:52 AM UTC
This works too,
C:\>cd wi*

C:\WINDOWS>
francisco lopez
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.