On 9/5/05, Bill Kelly <billk / cts.com> wrote:
> From: "Dave Burt" <dave / burt.id.au>
>> Bill Kelly wrote:
>>> Its commands don't output information in ways that facilitate
>>> being piped together.
>> You can get native ports for most of these GNU utils to Windows; I
>> use these heaps. It's not a shell issue at all.
> I had in mind 'dir' and the headers and footers it outputs, which is a
> built-in command to cmd.exe, is it not?  But sorry for generalizing.
> As I mentioned I use the Cygwin GNU tools, even if under cmd.exe.
> 
>>> <snip vitriol>
> Just to clarify, it wasn't directed at Austin, but MS-DOS.  :)
> 
> I'd stand by the hypothesis that the way the built-in 'dir' command
> works is a symptom of the general lack of focus on program
> interoperability that pervades MS-DOS.
> 
> More cmd.exe fun:
> How to invoke one program and use its output in the command line?
> Ex: HOME=`pwd | cut -d/ -f1-4`

Can't do that, as far as I can see, but that may just be where my
knowledge is sometimes limited. However, what you would want might be:

  SET HOME=%CD:~0,-5%

It's not *quite* the same (as cut uses fields), but you might also be
able to do something with SET /A.

> Being able to invoke sub-shells on the command line would be nice.
> Ex: ( tar cf - /home ) | ( cd /mnt/backup; tar xvfp - )

  C:\>(echo hello & echo hello2) && (echo goodbye & echo goodbye2)
  hello
  hello2
  goodbye
  goodbye2

I haven't got tar, etc. so I can't test the specific case. But as with
your next item (e.g., 2>&1), this is *built in*.

> How to flexibly redirect output streams?
> Ex: 2>&1

Exactly that.

This is part of the reason I get so damned frustrated when people slag
on cmd.exe. Most people do NOT know what is possible with cmd.exe -- and
they don't bother to find out. Then you have people like Charles Plager
who are so blinkered by their bigotry that they can't even see it.

-austin
-- 
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca