[comp.sys.ibm.pc] Shell command question

desmond@cod.NOSC.MIL (J. Desmond) (06/01/88)

I've noticed that using the shell= command in the config.sys file
inhibits execution of the autoexec file on my Zenith 248.  Is this
true of other clones?  Is there a way to inhibit the inhibition?
Even shell=command.com does it.
-J M Desmond
desmond@nosc.mil

nather@ut-sally.UUCP (Ed Nather) (06/02/88)

In article <1102@cod.NOSC.MIL>, desmond@cod.NOSC.MIL (J. Desmond) writes:
> I've noticed that using the shell= command in the config.sys file
> inhibits execution of the autoexec file on my Zenith 248.  Is this
> true of other clones?  

No.  My Clone from Taiwan (Standard Brand) has no problem with that.  It
sounds like a bug in the Zenith start-up software.


-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.AS.UTEXAS.EDU

bobmon@iuvax.cs.indiana.edu (RAMontante) (06/02/88)

In article <1102@cod.NOSC.MIL> desmond@cod.NOSC.MIL (J. Desmond) writes:
>I've noticed that using the shell= command in the config.sys file
>inhibits execution of the autoexec file on my Zenith 248.  Is this
>true of other clones?  Is there a way to inhibit the inhibition?
>Even shell=command.com does it.
>-J M Desmond
>desmond@nosc.mil

I ran into this behavior in the process of upgrading (well, let's call it
"converting") to v3.21 on my Z-158.  Coincidentally, I added another line to
my config.sys file, _after_ the 'shell=' line.

I rearranged things to keep 'shell=' the very last line of the file, terminated
by a CR/LF pair and with a ctrl-Z marking the file end.  (The last wasn't
deliberate, it's just what Sidekick does with files.)  That restored the use
of AUTOEXEC.BAT for me.  Sheesh.

Does this make sense to anyone, or is it black magic?  Unix has gurus, but I'm
a little leery of shamans...

-Bob Montante, bobmon@iuvax.cs.indiana.edu
"In this position, the skier is flying in a complete stall..."

nelson@sun.soe.clarkson.edu (Russ Nelson) (06/02/88)

In article <1102@cod.NOSC.MIL> desmond@cod.NOSC.MIL (J. Desmond) writes:
>I've noticed that using the shell= command in the config.sys file
>inhibits execution of the autoexec file on my Zenith 248.  Is this
>true of other clones?  Is there a way to inhibit the inhibition?
>Even shell=command.com does it.

I believe that you want to use "shell=command.com /p".  This tells command.com
that the invocation in question is the "login" shell.
-- 
char *reply-to-russ(int network) {
if(network == BITNET) return "NELSON@CLUTX";
else return "nelson@clutx.clarkson.edu"; }

bae@ati.tis.llnl.gov (Hwa Jin Bae) (06/02/88)

All these talks about environment space problems....
Here is what I do in my autoexec.bat:
It's a horrible kludge but then again so is MS-DOS  8-)
------------------------------------
echo off
set path=c:\bat;c:\usr\bin;c:\bin;C:\NFS;c:\cmupcip;c:\xln;c:\xsight;c:\pctrace
rem This is a hack to get more environment variable space.
if not exist c:\a123456.hjb  goto creat --------+
del c:\a123456.hjb				|
goto continue					|
:creat						|----> this part does the
touch c:\a123456.hjb				|	trick!
command /p /e:1024				|
:continue --------------------------------------+
prompt $_[$p]
asgnpart 0:2 d:
rem pacific time standard with PC NFS
SET TZ=PST8PDT
NET YPDOMAIN 
NET START RDR cygnus *
NET ROUTE gw
NET SUBNET 255.255.255.0
......
----------------------------------
Hwa Jin Bae          | The Devil made me do it...yeah, that's right!
Control Data Corp.   | (415) 463 - 6865
4234 Hacienda Drive  | bae@tis.llnl.gov			   (Internet)
Pleasanton, CA 94566 | {ames,ihnp4,lll-crg}!lll-tis!bae    (UUCP)

bae@ati.tis.llnl.gov (Hwa Jin Bae) (06/02/88)

Regarding the "touch" command in previous posting (my autoexec.bat):
	it's a small program that works like UNIX touch.
	I'm sure you can easily write your own.

Hwa Jin Bae          | The Devil made me do it...yeah, that's right!
Control Data Corp.   | (415) 463 - 6865
4234 Hacienda Drive  | bae@tis.llnl.gov			   (Internet)
Pleasanton, CA 94566 | {ames,ihnp4,lll-crg}!lll-tis!bae    (UUCP)

jcmorris@mitre-bedford.ARPA (Joseph C. Morris) (06/02/88)

In article <1102@cod.NOSC.MIL> desmond@cod.NOSC.MIL (J. Desmond) writes:
>I've noticed that using the shell= command in the config.sys file
>inhibits execution of the autoexec file on my Zenith 248.  Is this
>true of other clones?  Is there a way to inhibit the inhibition?
>Even shell=command.com does it.

If you are using COMMAND.COM, add the /p parameter to the SHELL line.  It's
documented in the DOS manual that /p causes the shell to be permanently
resident AND to execute AUTOEXEC.BAT at startup time.  Without /p it won't
run AUTOEXEC.

Since AUTOEXEC.BAT is processed by the command processor, if you use a
program other than COMMAND.COM you have to know how to make it run the
AUTOEXEC.BAT file.

kad@ttrde.UUCP (Keith Drescher) (06/02/88)

In article <1102@cod.NOSC.MIL> desmond@cod.NOSC.MIL (J. Desmond) writes:
>I've noticed that using the shell= command in the config.sys file
>inhibits execution of the autoexec file on my Zenith 248.  Is this
>true of other clones?  Is there a way to inhibit the inhibition?
>Even shell=command.com does it.
>-J M Desmond
>desmond@nosc.mil

I boot with "shell=command.com /E:1024 /P" and it reads autoexec.bat.
I tried leaving the /P off, and it did not.

My MS-DOS manual (AT&T version 3.2) says 
"The /P option tells MS-DOS to make the processor permanent."

No mention of the executing autoexec.bat thing.  HOWEVER, I checked
two PC-DOS manuals:

PC-DOS 3.2 says:
"/P causes COMMAND.COM to execute AUTOEXEC.BAT once it gets installed."

PC-DOS 3.3 says:
"/P causes COMMAND.COM to remain loaded and to execute AUTOEXEC.BAT
once it is installed."

I noticed that saying "exit" to the first loaded version of command.com
causes the pc to crash when /P is not specified (as would  be expected,
it exited, as told.  The /P flag tells command.com to ignore that
command.

The MS-DOS manual also mentions that the /E and /P options may not work
with other command processors.

To wrap it up, to boot with a larger environment AND execute command.com
you need to say:
shell=command.com /E:xxxxx /P
where xxxxx is a decimal number specifying the environment size in bytes.
You don't need to modify command.com to get this effect.


Hope this helps someone, somewhere.

Keith Drescher

P.S.  Prior to MS-DOS version 3.2, (at least my 3.1 manual doesn't mention it)
      the /E flag didn't exist, so the only way to increase the environment
      size was to modify command.com.  Just like prior to 3.3, there was no way
      to have ECHO OFF be the default unless you hacked it.  

      
-- 
Keith Drescher (kad@ttrdc)          	   | ... You can check out any      
AT&T                                       | time you like - but you can
Computer Systems Division, Skokie, Il.     | never leave ...              
PATH: ...!ihnp4!ttrdc!kad                  |          - Hotel California

passaret%brahe.steinmetz@ge.com (E. MichaelMr. Mike Passaretti) (06/02/88)

In article <11878@ut-sally.UUCP> nather@ut-sally.UUCP (Ed Nather) writes:
>In article <1102@cod.NOSC.MIL>, desmond@cod.NOSC.MIL (J. Desmond) writes:
>> I've noticed that using the shell= command in the config.sys file
>> inhibits execution of the autoexec file on my Zenith 248.  Is this
>> true of other clones?  
>
>No.  My Clone from Taiwan (Standard Brand) has no problem with that.  It
>sounds like a bug in the Zenith start-up software.
>

It's not a bug, it's a feature.  Really.  You have to specify that this
is the (/P)ermanent version of command.com you are installing.  Add a
'/P' to you 'shell =' line and it will love you forever (and run
autoexec for you).  This is so you can spawn command.com without having
to run your autoexec batch every time.

                                                        - MM


-- 
"Mr. Mike" Passaretti |"There is no god but ULTOR, and Maxwell is his prophet."
                      |
DisClaimer            |ARPA: passaret%brahe.steinmetz@ge-crd.arpa
DatClaimer            |UUCP: {philabs, rochester, uunet}!steinmetz!crd!passaret
DeOtherClaimer        |WRPI: 30 years of Agressive Radio(tm) 91.5 FM, Troy, NY
--
 

swillett@violet.berkeley.edu (06/02/88)

In article <1102@cod.NOSC.MIL> desmond@cod.NOSC.MIL (J. Desmond) writes:
>I've noticed that using the shell= command in the config.sys file
>inhibits execution of the autoexec file on my Zenith 248.  Is this
>true of other clones?  Is there a way to inhibit the inhibition?
>Even shell=command.com does it.
>-J M Desmond
>desmond@nosc.mil

add the "/P" parameter to the end of the "shell=" command.

swillett@violet.berkeley.edu (06/02/88)

In article <22242@tis.llnl.gov> bae@ati.tis.llnl.gov (Hwa Jin Bae) writes:
>All these talks about environment space problems....
>Here is what I do in my autoexec.bat:
>......
>touch c:\a123456.hjb	[what is this!?]
>......

What is this "touch" command?  DOS command? HJB's own?

mvolo@ecsvax.UUCP (Michael R. Volow) (06/03/88)

> In article <1102@cod.NOSC.MIL>, desmond@cod.NOSC.MIL (J. Desmond) writes:

> > I've noticed that using the shell= command in the config.sys file
> > inhibits execution of the autoexec file on my Zenith 248.  Is this
> > true of other clones?  

Strange, on our Z248 running Zenith MS DOS 3.20, /p causes our
autoexec.bat to execute.  Our config.sys is as follows:

Device=emm.sys at D000 208
shell=c:\command.com c:\ /p/e:1040
files=30
buffers=30
Michael Volow, M.D.
Dept of Psychiatry, Durham VA Medical Center, Durham, N.C. 27705
919 286 0411                           mvolo@ecsvax.UUCP

sullivan@marge.math.binghamton.edu (fred sullivan) (06/04/88)

In article <540@etn-rad.UUCP> markus@etn-rad.UUCP (Markus N. Richardson) writes:
>bae@ati.tis.llnl.gov (Hwa Jin Bae) writes:
>>Regarding the "touch" command in previous posting (my autoexec.bat):
>>	it's a small program that works like UNIX touch.
>>	I'm sure you can easily write your own.
>>
>     Hmm... how about "type nul > filename" <==> "touch filename"
>
This does a wonderful job of touching the file.  It also truncates it
to length 0.  It is therefore not quite equivalent to the usual "touch"
command.

Fred Sullivan				SUNY at Binghamton
Dept. Math. Sciences			Binghamton, NY 13903
					sullivan@marge.math.binghamton.edu
First you make a roux!

mikep@ism780c.isc.com (Michael A. Petonic) (06/06/88)

In article <540@etn-rad.UUCP> markus@etn-rad.UUCP (Markus N. Richardson) writes:
 >bae@ati.tis.llnl.gov (Hwa Jin Bae) writes:
 >>Regarding the "touch" command in previous posting (my autoexec.bat):
 >>	it's a small program that works like UNIX touch.
 >>	I'm sure you can easily write your own.
 >>
 >     Hmm... how about "type nul > filename" <==> "touch filename"

Can you say "Bye Bye file?"  I knew you could.  

The touch utility in MS-DOS is probably needed.  Surely, truncating
the file (while updating the datestamp) is not the general-purpose
solution to touch.

-MikeP

bicker@hoqax.UUCP (The Resource, Poet of Quality) (06/06/88)

In article <1246@bingvaxu.cc.binghamton.edu>, sullivan@marge.math.binghamton.edu.UUCP writes:
| In article <540@etn-rad.UUCP> markus@etn-rad.UUCP (Markus N. Richardson) writes:
| >bae@ati.tis.llnl.gov (Hwa Jin Bae) writes:
| >>Regarding the "touch" command in previous posting (my autoexec.bat):
| >>	it's a small program that works like UNIX touch.
| >>	I'm sure you can easily write your own.
| >>
| >     Hmm... how about "type nul > filename" <==> "touch filename"
| >
| This does a wonderful job of touching the file.  It also truncates it
| to length 0.  It is therefore not quite equivalent to the usual "touch"
| command.

What you want is "type nul >> filename" but, as we all know is the
general case, MS-DOS just can't match UN*X for power and
versitility.
-- 
/kohn/brian.c      AT&T Bell Laboratories Semantic Engineering Center
The Resource, Poet of Quality   ...ihnp4!hoqam!bicker  (201) 949-5850
"It is useless for sheep to pass resolutions in favor of vegetarianism
while wolves remain of a different opinion." - Wm. Ralph Inge, D.D.

w8sdz@brl-smoke.ARPA (Keith B. Petersen ) (06/07/88)

It is possible to "touch" a file using this simple batch file:

copy %1/b,,+ %1 >nul

It works.  I use a public domain program called NFD (new file date)
myself.  It is written in assembly language, is very fast, and offers
many useful features such as setting the date to something other than
the current date.  It can be interactive, asking for confirmation, or
automatic - depending upon the command line option you choose.
-- 
Keith Petersen
Arpa: W8SDZ@SIMTEL20.ARPA
Uucp: {bellcore,decwrl,harvard,lll-crg,ucbvax,uw-beaver}!simtel20.arpa!w8sdz
GEnie: W8SDZ

few@quad1.quad.com (Frank Whaley) (06/09/88)

I couldn't stand it any more.  A 30 byte batch file eats 2K of my hard disk,
my version of touch.com comes in at 4016 bytes.  It doesn't need a shell
around it, and it understands the "-c" option.  I once had a version that
used the GET/SET TIMESTAMP function, but this version was just too crudely
simple for me to ignore.

Frank Whaley
Senior Programmer
Quadratron Systems Incorporated

	 sdcrdcf!
	 scgvaxd!
	bellcore!
	  ttidca!
	   ihnp4!psivax!quad1!few

Water separates the people of the world;
Wine unites them.
----------------------------------------
/*
 *	touch.c ->	update time/date stamp of files
 */

#include <stdio.h>

void main(ac, av)
	int	ac;
	char	**av;
	{
	char	r;	/*  character read			*/
	int	arg,	/*  argument counter			*/
		fd,	/*  file descriptor			*/
		make;	/*  create file if not found ??		*/

	make = arg = 1;

	/*  check for 'create' option  */
	if ((av[1][0] == '-') && (av[1][1] == 'c'))
		{
		make--;
		arg++;
		}

	/*  touch each file  */
	for (; arg < ac; arg++)
		if ((fd = open(av[arg], 2)) != ERROR)
			{
			read(fd, &r, 1);
			lseek(fd, 0L, 0);
			write(fd, &r, 1);
			close(fd);
			}
		else
			if (make)
				if ((fd = creat(av[arg], 0)) == ERROR)
					{
					fputs("touch: cannot create ", stderr);
					fputs(av[arg], stderr);
					fputs("\r\n", stderr);
					}
				else
					close(fd);
			else
				{
				fputs("touch: cannot open ", stderr);
				fputs(av[arg], stderr);
				fputs("\r\n", stderr);
				}
	}


/*
 *	END of touch.c
 */
-- 
Frank Whaley
Senior Programmer
Quadratron Systems Incorporated

	 sdcrdcf!
	 scgvaxd!
	bellcore!
	  ttidca!
	   ihnp4!psivax!quad1!few

Water separates the people of the world;
Wine unites them.

ansari@gpu.utcs.toronto.edu (Aali Ansari) (06/17/88)

In article <1018@sun.soe.clarkson.edu> nelson@sun.soe.clarkson.edu (Russ Nelson) writes:
>In article <1102@cod.NOSC.MIL> desmond@cod.NOSC.MIL (J. Desmond) writes:
>>I've noticed that using the shell= command in the config.sys file
>>inhibits execution of the autoexec file on my Zenith 248.  Is this
>>true of other clones?  Is there a way to inhibit the inhibition?
>>Even shell=command.com does it.
>
>I believe that you want to use "shell=command.com /p".  This tells command.com
>that the invocation in question is the "login" shell.
>-- 
>char *reply-to-russ(int network) {
>if(network == BITNET) return "NELSON@CLUTX";
>else return "nelson@clutx.clarkson.edu"; }

	is there a way to give the path to autoexec.bat  instead of keeping
	in root ?
aali

madd@bu-cs.BU.EDU (Jim Frost) (06/26/88)

In article <1988Jun17.110045.27448@gpu.utcs.toronto.edu> ansari@gpu.utcs.UUCP (Aali Ansari) writes:
|	is there a way to give the path to autoexec.bat  instead of keeping
|	in root ?

I can answer this from experience:  No.  The best I could do in
providing a login function with differing login scripts was to chdir
into their directory, run command /c autoexec.bat, and have the
autoexec.bat file run another command.com.  "exit" drops out of both
of them.

This is really obnoxious, but MS-DOS is really, really centered around
the one user per cpu deal.  Our system is a network (centralized
server) and we wanted to allow user logins at any terminal.  How?
shell=\login.exe in the config file.  The login program did the above.
It all works pretty cleanly but it's not a pretty way of doing it.
The bonus is that the user can be given different shells by merely
changing the autoexec.bat command.com invocation to something else
(like csh :-).  This works really nice in making "turnkey" logins; the
secretary need only type her name and password to invoke the
wordprocessor.

jim frost
madd@bu-it.bu.edu