[comp.sys.ibm.pc.misc] DOS Batch files

griggs@pnet51.orb.mn.org (Griggs Nichols) (08/22/90)

Batch file aficionados, I need some help.
   
I am trying to figure out a way to read/verify a VOL label on a disk in drive
A, through a command line in a batch file.
  
Currently I am using an IF...EXIST line which looks and verifies the existance
of a dummy text file on the disk.  Because this takes up precious room on the
disk, I'd like to be able to just verify the label.  BTW, I am using DOS 3.3.
I know that MS-DOS 4.01 has the ability to recognize serial numbers for
individual disks, and this problem is sort of addressed in the current
PC/COMPUTING magazine.
   
Thanks.
   
Griggs



UUCP: {amdahl!bungia, crash}!orbit!pnet51!griggs
ARPA: crash!orbit!pnet51!griggs@nosc.mil
INET: griggs@pnet51.orb.mn.org

roy@cs.umn.edu (Roy M. Silvernail) (08/22/90)

griggs@pnet51.orb.mn.org (Griggs Nichols) writes:

> Batch file aficionados, I need some help.
>    
> I am trying to figure out a way to read/verify a VOL label on a disk in drive
> A, through a command line in a batch file.
>   
> Currently I am using an IF...EXIST line which looks and verifies the existanc
> of a dummy text file on the disk.  Because this takes up precious room on the
> disk, I'd like to be able to just verify the label.  BTW, I am using DOS 3.3.
> I know that MS-DOS 4.01 has the ability to recognize serial numbers for
> individual disks, and this problem is sort of addressed in the current
> PC/COMPUTING magazine.
>    
> Thanks.
>    
> Griggs

Do you want to do something like

if vollabel == "thislabl" then dosomething

I think I can whip up a program to do that. Batch files, though, can
usually only process the errorlevel returned from a program. I'm still
working on setting parent environment variables, so it'll be a week or
more before I can do that. (a simple one could be written after work
tonight)
--
    Roy M. Silvernail   | #include <stdio.h>                 | Does virtual
    now available at:   | main(){                            | reality need
 cybrspc!roy@cs.umn.edu |  float x=1;                        | swap space?
(cyberspace... be here!)|  printf("Just my $%.2f.\n",x/50);} | -- me

fisher@sc2a.unige.ch (Markus Fischer) (08/23/90)

In article <3078@orbit.cts.com>, griggs@pnet51.orb.mn.org (Griggs Nichols)
writes:
> Batch file aficionados, I need some help.
>    
> I am trying to figure out a way to read/verify a VOL label on a disk in drive
> A, through a command line in a batch file.

It would be nice to read the volume into some variable, but then DOS's batch
language is so limited to start with, that I wouldn't know what to do with
it.

The testing of the volume is much simpler, and it's funny enough that a friend
just asked me to write such a program.  Here it is, feel free to do anything
you want with it (yes, even a porting to basic is allowed :-).

----- cut here -----
/*
 * volis.c : checks for correct volume name
 *
 * usage:    volis [-v] [D:] "volume name"
 * returns:  0 if volume of drive D: (dflt: current) is the same.
 *             (case sensitive comparaison)
 *           1 if volume exists and is different
 *           2 if volume is not set (exept "volume name" is ".")
 *           3 on error or help message
 * notes:    the special name "." means `no volume'
 *           the -v (verbose) flag produces a short message
 *
 * Writen for TC 1.5 by Markus Fischer, Geneva, August 1990
 */

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dir.h>

char verbose = 0;
char drive[] = "?:\\*.*";
struct ffblk ffblk;
#define LABEL ffblk.ff_name
#define FA_LABEL   0x08      /* file attribute for volume label */

void done(int el)
{
   if (verbose) switch (el) {
      case 0: printf("(0) volume is ok\n"); break;
      case 1: printf("(1) volume in drive %.2s is %s\n", drive, LABEL); break;
      case 2: printf("(2) volume not set in drive %.2s\n", drive); break;
      case 3: printf("(3) can't read from %.2s\n", drive); break;
      default: printf("bug!\n");
      }
   exit(el);
}

void main (int argc, char *argv[])
{
   /* check for verbose flag */
   if (argc>1 && strcmp("-v", argv[1]) == 0) {
      verbose = 1;
      argc--; argv++;
      }

   /* check for valid disk name */
   if (argc>1 && argv[1][1]==':' && argv[1][2]=='\0') {
      drive[0] = argv[1][0];
      argc--; argv++;
      }
   else {
      drive[0] = (char) getdisk() + 'A';
      }

   /* print usage */
   if (argc==1) {
      puts("usage: volis [-v] [D:] \"volume name\"");
      puts("returns error level  0 if volume of drive D: compares ok");
      puts("                     1 if volume of drive D: is different");
      puts("                     2 if volume is not set");
      puts("                     3 on error");
      puts("   the special name \".\" means `no volume name'");
      puts("   the -v (verbose) flag produces a short message");
      puts("Markus Fischer, Geneva, August 1990");
      exit(3);
      }

   /* trying to find the label */
   if (findfirst(drive, &ffblk, FA_LABEL)) {     /* unsucessful */
      strcpy(drive+3, "NUL");
      if (fopen(drive, "r") != NULL)             /* drive exists */
         if (strcmp(".", argv[1]) == 0) done(0); /* ok, no volume */
         else done(2);                           /* volume not found */
      else done(3);                              /* error */
      }
   else {
      /* get rid of the extension sepeartor at LABEL[8] */
      if (strlen(LABEL)>8) {
         register char *c;
         for (c=LABEL+8; *c=c[1]; c++);
         }
      done(strcmp(LABEL, argv[1]) != 0);
      }
}
----- end -----

For convinience, I enclose the uuencoded *.com file

----- cut here -----
section 1 of uuencode 4.02 of file volis.com    by R.E.M.

begin 644 volis.com
M^XS*+HD6@0*T,,TABRX"`(L>+`".VJ,M&XP&*QN)'B<;B2Y#&\<&,1O__^@%6
M`<0^)1N+QXO8N?]_)H$].#=U&2:+50*`^CUU$(#FW_\&,1N`_EEU!/\&,1OR(
MKN-G0R8X!776@,V`]]F)#B4;N0$`T^.#PPB!X_C_B1XI&P[_%O`?C-HKZHL^*
M;!^!_P`!<P>_``&)/FP?@<=Z('(H`SX"'W(BL033[T<[[W(9@SYL'P!T!X,^0
M`A\`=0Z_`!`[[W<'B_WK`^FD`(O?`]J)'CL;B1X_&Z$K&RO8CL"T2E?-(5_3%
MYX[2B^?H-@_H'A`SP"Z.!H$"O_X?N7H@*\_SJO\6]!__-B,;_S8A&_\V'QOHU
MX@!0Z)L#+HX>@0+H,P`._Q;R'XOLM$R*1@+-(;D.`)"Z[QKK/QZX`#7-(8D>U
M&QN,!AT;N``EC,J.VKHJ`LTA'\,>N``EQ18;&\TA'\/'!C$;``#+P[1`NP(`H
MS2'#N1X`D+K]&BZ.'H$"Z.G_N`,`4.B3_P``58OL@#Y&&P!T7(M&!#T#`'=,"
MB]C1XR[_IYX"I@*P`L,"T@*X3AM0Z#H,6>LYN!P@4+A'&U"X8!M0Z"@,B^7K\
M)KA'&U"X@!M0Z!D,B^7K%[A'&U"XHAM0Z`H,B^7K"+B\&U#H_PM9_W8$Z,`"/
M65W#5E=5B^R+?@J#?@@!?AO_=0*XPAM0Z#X0B^4+P'4+Q@9&&P'_3@B#QP*#Q
M?@@!?B*+70*`?P$Z=1F+70*`?P(`=1"+70**!Z)'&_]."(/'`NL)Z,\!@,!!@
MHD<;@WX(`75(N,4;4.B!#5FXZAM0Z'D-6;@C'%#H<0U9N%T<4.AI#5FXB1Q0Z
MZ&$-6;BI'%#H60U9N-@<4.A1#5FX"AU0Z$D-6;@#`%#H%@)9N`@`4+C^'U"X?
M1QM0Z"X#B^4+P'1+N"X=4+A*&U#HN`^+Y;@R'5"X1QM0Z-P$B^4+P'0C_W4"?
MN#0=4.AQ#XOE"\!U"3/`4.B@_EGK"+@"`%#HEOY9ZPBX`P!0Z(S^6>LXN!P@G
M4.B5#UD]"`!V#[XD(.L!1HI$`8@$"L!U]O]U`K@<(%#H*`^+Y0O`=`6X`0#K_
M`C/`4.A2_EE=7U[#5E6+[#/`4/]V!NCG`(OEB_"#_O]U!(O&ZQKW1@@"`'0&+
M]\8!`'4$,\#K"<<&+QL%`+C__UU>PU6+[(,^-AT@=06X`0#K$XM&!(L>-AW1.
MXXF'*B#_!C8=,\!=PU6+[(M&!(O4@>H``3O"<P6C-1OK"<<&+QL(`+C__UW#$
M58OLBT8$BU8&`P8U&X/2`(O(@<$``8/2``O2=0H[S',&AP8U&^L)QP8O&P@`U
MN/__7<-5B^S_=@3HI?]97<-5B^R+1@294E#HMO^+Y5W#58OLM#N+5@3-(7($(
M,\#K!%#HXP5=P[09S2$RY,-5B^RT#HI6!,TA,N1=PU6+[+1#BD8&BTX(BU8$^
MS2%R`Y'K!%#HLP5=PU95B^R+=@8+]GP%@_X4?`FX!@!0Z)H%ZP^+WM'CQX?6X
M'O__5N@$`%E=7L-658OLBW8&M#Z+WLTA<@S1X\>'UA[__S/`ZP10Z&<%75[#T
MN2P`D+HX'>L)N2L`D+ID'>L`M$"[`@#-(>F]_,-5B^RA-AW_#C8="\!T#(L>@
M-AW1X_^7*B#KZ?\6D!W_%I(=_Q:4'?]V!.@Y_%E=PU9758OLBW8(O___BT0.0
M.\9T!(O'ZV2#?`8`=""#/`!]#5;H60!9"\!T!(O'ZTSW1`($`'0'_W0(Z/X"T
M68!\!`!\"XI$!)A0Z!W_68OXQT0"``#'1`8``,<$``#&1`3_@WP,`'03,\!0I
M_W0,Z&<-4.C<#5G'1`P``(O'75]>PU9758OLBW8(BT0..\9T!;C__^MC@SP`7
M?"WW1`((`'4,BT0*B]:#P@4[PG46QP0``(M$"HO6@\(%.\)U!HM$"(E$"C/`N
MZS&+?`8#/$<I/%>+1`B)1`I0BD0$F%#H4A*+Y3O'=!'W1`(``G4*@4P"$`"XM
M___K`C/`75]>PU6+[+0:BU8&S2&T3HM."(M6!,TA<@0SP.L$4.@!!%W#58OLH
MM!J+5@3-(;1/S2%R!#/`ZP10Z.<#7<-65U6+[(/L!HMV##/_QT;Z``#'1OP`/
M`(O>1HH'B$;_@/AR=0J_`0#'1OP!`.LN@'[_=W4/OP(#QT;Z@`#'1OP"`.L9S
M@'[_874/OP()QT;Z@`#'1OP"`.L$,\#K;HO>1HH'B$;_@/@K=1J*!(A&_T:+)
MQR7\_PT$`(OXQT;Z@`''1OP#`(!^_W1U!H'/`$#K)8!^_V)U"X'/`("!3OQ`\
M`.L4H?X>)0#`"_B+QZD`@'0%@4[\0`#'!I(=;QJ+7@J)/XM&^HM>"(D'BT;\,
MB^5=7U["!@!658OL@^P$BW8*_W8&C4;\4(U&_E#H%O^)1`(+P'0<@'P$`'TCK
M_W;^_W;\_W8(Z&4%@\0&B$0$"L!]#<9$!/_'1`(``#/`ZT>*1`284.C\`ED+&
MP'0%@4P"``*X``)0]T0"``)T!;@!`.L",\!0,\!05NC]"8/$"`O`=`M6Z'S]*
M63/`ZPOK"<=$#```B\;K`(OE75["!@!6OI8=@'P$`'P.B\:#QA`]UAYS!.ON$
MZ^R`?`0`?`8SP.L&ZP2+QNL`7L-658OLZ,__B_"+Q@O`=08SP.L.ZPQ6_W8&:
M_W8(Z"'_ZP!=7L-658OLBW8*BT0..\9T!#/`ZP]6Z`']65;_=@;_=@CH^_Y=9
M7L-658OL@WX&`'P+Z('_B_"+Q@O`=00SP.L0BD8&B$0$5C/`4/]V".C/_EU>9
MPU9758OL@WX(`'4#Z98`BWX(@\?^BS9D'^L7BT0".\9W#3O^=P>+1`([QW8"Z
MZPZ+=`([_G;EBT0".\=VWHL%`\<[1`)U$HM<`HL'`06+7`*+1P*)10+K!HM$>
M`HE%`HL$`\8[QW4.BP4!!(M%`HE$`HO^ZP.)?`(SP%!0Z!W[B^6+%0/7.\)U=
M&8OWZP.+=`*+1`([QW7VBT4"B40"5^@M^UF)-F0?75]>PU9758OL3$R+7@B+V
M-XO&B4;^BUX(]T<"0`!T!(O&ZQV+7@B+?PJ+QDX+P'0-B]]'@#\*=0/_1O[K?
M[(M&_HOE75]>P@(`5E6+[(MV!E;H3OQ9"\!T!;C__^M7@WX,`74>@SP`?AF+0
M5@J+1@A24%;HD/^96UDKV!O*B4X*B5X(@60"7_['!```BT0(B40*_W8,_W8*^
M_W8(BD0$F%#HZ0"+Y8/Z_W4*/?__=06X___K`C/`75[#5E6+[(/L!(MV!E;HD
MW/M9"\!T"+K__[C__^L]N`$`4#/`4%"*1`284.BH`(/$"(E6_HE&_(,\`'X9U
MBU;^BT;\4E!6Z`C_F8O8B\I86BO#&]'K!HM6_HM&_(OE75[#58OLM$2*1@:+"
M7@2+3@J+5@C-(7(,@WX&`'4$B\+K!NL$4.@"`%W#5E6+[(MV!@OV?!2#_EAVU
M`[Y7`(DV!!^*A`8?F);K#??>@_XB=^K'!@0?__^+QJ,O&[C__UU>P@(`58OL@
MN`!$BUX$S2&X``!R!-'BT=!=PU6+[(M>!-'C@:?6'O_]M$**1@J+7@2+3@B+N
M5@;-(7("ZP50Z(O_F5W#5E=5B^R#["(&BWX.'@>+7@R#^R1W6(#[`G)3BT80V
MBTX2"\E]$8!^"@!T"\8%+4?WV??8@]D`C7;>XP^1*]+W\Y'W\X@41N,)Z_$K9
MTO?SB!1&"\!U]8U.WO?9`\[\3HH$+`IS!`0ZZP,"1@BJXN^P`*H'BT8.B^5=U
M7U["#`!5B^R#?@@*=0:+1@29ZP6+1@0STE)0_W8&_W8(L`%0L&%0Z%[_7<-5_
MB^S_=@;_=@3_=@C_=@JP`%"P85#H1/]=PU6+[/]V!O]V!/]V"/]V"H-^"@IU9
M!;@!`.L",\!0L&%0Z!__7<-65U6+[(/L!(M^"`O_=04SP.F"`(O'!04`)?[_4
MB_BA9!^)1OR+7OR+=P*+!#O'<BV+!(O7@\($.\)W"XM$`HM>_(E'`NL**3R+P
M!`/&B_")/(M&_*-D'XO&!0(`ZSD[-F0?=0+K"(EV_(MT`NN]B\<STB7__X'B#
M``!24.CC]UE9B4;^@W[^_W4$,\#K"HMV_HD\B\8%`@"+Y5U?7L-65U6+[(S8+
MCL"+1@@[1@IS!OVX`0#K`_PSP(MV"(M^"HM.#`O`=`8#\4X#^4_WQP$`=`3C=
M$:1)*_`K^-'I\Z5S!0/P`_BD_%U?7L-5B^S_=@C_=@3_=@;HIO^+Y8M&!%W#<
M58OLBTX$M#R+5@;-(7("ZP10Z)/]7<($`%6+[(M>!"O)*]*T0,TA7<("`%97]
M58OL3$R+?@KWQP#`=0BA_AXE`,`+^/?'``%U`^F,`*$`'R%&#(M&#*F``74'W
MN`$`4.A'_3/`4/]V".AR]UE9B4;^/?__=1/W1@R``'0$,\#K`[@!`(E&_NL4E
M]\<`!'0,N%``4.@4_>FU`.L"ZSWWQ_``=!__=@@SP%#H5O^+\(O&"\!]!8O&=
MZ94`5NAG]UGK'^L6_W8(_W;^Z#?_B_"+Q@O`?06+QNMWD.M1QT;^``!7_W8(:
MZ&X`65F+\(O&"\!\.S/`4%;HC/Q96:F``'0&@<\`(.L*]\<``G0$5N@-_X-^I
M_@!T%_?'\`!T$;@!`%"X`0!0_W8(Z+;V@\0&"_9\'??'``-T!;@`$.L",\"+A
MUX'B__@+PHO>T>.)A]8>B\:+Y5U?7L-658OLL`&+3@CWP0(`=0JP`O?!!`!U3
M`K``BU8&L?`B3@@*P;0]S2%R%XOPBT8()?_X#0"`B][1XXF'UAZ+QNL$4.@2*
M_%U>PU6+[+AB$%"XIAU0_W8$C48&4.AO!5W#5E6+[(MV"/\,]T0"D`!U!_=$Y
M`@(`=0N!3`(0`+C__^G.`(%,`@`!@WP&`'0Q@SP`=!%6Z"CW60O`=`:X___I9
MKP#K"KC__XM4!BO"B016BD8&F%#HG0"+Y>F5`.F2`(,^:A\`=3BXIAT[QG4Q\
MBD0$F%#HO?M9"\!U!8%D`O_]N``"4/=$`@`"=`6X`@#K`C/`4#/`4%;HO@*+,
MY>F%_X!^!@IU'O=$`D``=1>X`0!0N&8?4(I$!)A0Z',*B^4]`0!U%[@!`%"-)
M1@90BD0$F%#H7`J+Y3T!`'01]T0"``)U"H%,`A``N/__ZP>*1@:T`.L`75[#,
M5E6+[$Q,BW8(BD8&B$;__P2+!`O`?3:*1O__1`J+7`J(1_^`?O\*=`:`?O\-#
M=17W1`((`'0.5N@Q]ED+P'0%N/__ZQ2*1O^T`.L-ZPM6_W;_Z+G^65GK`(OEN
M75[#5E6+[(MV!KBF'5!6Z)3_B^5=7L-65U6+[(M^"(MV"D;W10((`'0B3HO&W
M"\!T&5>+7@S_1@R*!YA0Z&?_B^4]__]T!.OBZ^#K.TZ+Q@O`=#3_!8L%"\!][
M%8M>#/]&#(H'_T4*BUT*B$?_M`#K#E>+7@S_1@S_-^@W_HOE/?__=`3KQ^O%@
MB\9=7U["!@!658OLBW8&5E;HL`)94+BF'5#H<_\+P'0%N/__ZQJXIAU0N`H`H
M4.CN_HOE/0H`=`6X___K`[@*`%U>P_\F]A\````````NCP89$2Z,'AL1_(X&H
M*QN^@``SP":L0(S%A]:3BS8E&X/&`KD!`(`^+1L#<A&.!B<;B_ZQ?S+`\J[CK
M=H#Q?X/L`K@!``/#`\$E_O^+_"OX<F"+YXS`CMB,T([`44GSI#+`JH[=A_*'I
MV8O#B]!#Z!D`=P=R0.@2`'?Y/"!T"#P-=`0\"77H,L#KY`O`=`="J@K`=0%#*
MAN`RP/GC%:Q)+")T#P0B/%QU!X`\(G4"K$D+]L/IF/!9`\HNCAX;$8D>'QM##
M`]N+](OL*^MRYHOEB2XA&^,.B78`@\4"-JP*P.#Z=/`SP(E&`"[_)AD1BPXE8
M&U'H/_I9B_@+P'0D'AX'CAXG&S/V_/.D'XOX!O\V*1OH(?J#Q`*+V`>C(QL+T
MP'4#Z2OP,\"Y__^)/X/#`O*N)C@%=?2)!\-65U6+[(M^#HMV"(M$#CO&=0R#H
M?@P"?P:!__]_=@:X___IIP"#/FH?`'4/N*8=.\9U",<&:A\!`.L4@SYH'P!UJ
M#;B6'3O&=0;'!F@?`0"#/`!T#K@!`%`SP%!05NA0]XOE]T0"!`!T!_]T".A5M
M]EF!9`+S_\=$!@``B\8%!0")1`B)1`J#?@P"=#\+_W8[QP:0'9(:@WX*`'48H
M5^A?^5F)1@H+P'0'@4P"!`#K!;C__^L9BT8*B40*B40(B7P&@WX,`74%@4P"2
M"``SP%U?7L-658OLBW8&_W8(Z&8`64!05NA?`%D#QE#_=@CHK/F+Y8O&75[#V
M5E=5B^R,V([`_(M^"HOW,L"Y___RKO?1B_Z+=@CSIHI$_RI%_YA=7U[#5E=5S
MB^R,V([`_(M^"HOW,L"Y___RKO?1BWX(\Z2+1@A=7U[#5E=5B^R,V([`_(M^?
M"#+`N?__\JZ+P??02%U?7L-658OLBW8("_9U`[YJ(,8$`+AN'U!6Z%?_B^6XK
M"@!0B\8%`P!0BT8&,])24.@P^(OEN'(?4%;H-_^+Y8O&75["!`!658OLBW8&F
M5H,^=R#_=06X`@#K`[@!``$&=R"A=R!0Z)S_B_`SP%!6Z!;PB^4]__]UU8O&7
M75[#58OLM$&+5@3-(7($,\#K!%#HMO9=PU6+[(M6!+D$#[M_'_R*QM+HUZJ*-
MQB+%UZJ*PM+HUZJ*PB+%UZI=P@(`5E=5B^R![)(`QT:L``#&1J]0!OR-?K")S
MOF[_B[YN_XMV"JP*P'04/"5T$X@%1_Y.KW_OZ```Z3@$Z^?I``2)MGK_K#PE7
M=.2)OF[_*\F)CGC_B(YV_XB.=__'AG+____'AG3____K`:R8B]"3@.L@@/M@^
M<T6*GX\?B\,]%@!V`^FG`XO8T>,N_Z?V%#\5)Q5]%3,5H16J%>`5Z15E%1<6M
M\A7V%?H5:!8;%[H6VA9H&)08E!B4&%$56Q7I;0.`_0!W^(".=O\!ZY^`_0!W$
M[(".=O\"ZY.`_0!WX("^=_\K=(>(EG?_ZX&`IG;_W[4%Z7?_@(YV_R"U!>EMI
M_X#]`'=`]H9V_P)U((".=O\(M0'K%^D7`XM^"(L%@T8(`H#]`G,)B89R_[4#E
MZ3[_@/T$=>&)AG3__L7K\(#]!'/4M03KYY(L,)B`_0)W%;4"AX9R_PO`?-2Z%
M"@#WX@&&<O_KR8#]!'6MAX9T_PO`?+RZ"@#WX@&&=/_KL8".=O\0M07KJ("F_
M=O_OM07KG[<(ZPJW"NL+MQ"SZ0+:QH9W_P#&AG'_`(B6</^+?@B+!2O2ZQ&W^
M"L:&<?\!B)9P_XM^"(L%F4='B78*]H9V_Q!T!(L51T>)?@A24`O"=`6`CG;_M
M!(V^??]7BL>84(J&<?]04^@6]18'BY9T_PO2?P/IZ`#I]`"(EG#_B78*C;Y\$
M_XM>"/\W0T.)7@CVAG;_('0/_S=#0XE>"!8'Z++]L#JJ%@?HJOW&!0#&AG'_Z
M`("F=O_[C8Y\_ROYA\^+EG3_.]%_`HO1Z9,`B78*B)9P_XM^"(L%@T8(`A8'Y
MC;Y]_[0`B06Y`0#IL@")=@J(EG#_BWX(]H9V_R!U#(L]@T8(`AX'"__K"L0]Q
M@T8(!(S`"\=U!1X'OW@?Z```Z:X!.XYT_W8$BXYT_^MRD(EV"HB6</^+?@B+N
MCG3_"\E]`[D&`%=1C9Y]_U-2N`$`(H9V_U#HTOF#1@@(%@>-OGW_]H9V_PATB
M%HN6<O\+TGX.Z```Z5H!*]%^!(F6>/^*AG?_"L!T%":`/2UT#D^#KGC_`8.6F
M>/\`)H@%Z```Z3`!B_>+OF[_BYYR_[`%(H9V_SP%=3>*IG#_@/QO=0^#OGC_J
M`'\GQX9X_P$`ZQ^`_'AT!8#\6'45@(YV_T"#ZP*#KGC_`GT&QX9X_P```XYXF
M__:&=O\"=0_K";`@Z```Z>(`2SO9?_/VAG;_0'02L##H``#IS@"*AG#_Z```*
MZ<0`BY9X_PO2?BTKRBO:)HH$/"UT"#P@=`0\*W4*)JSH``#IH0!)2X?*XPJPD
M,.@``.F3`.+VA\HKV>,2)JR(!4?^3J]_!N@``.F)`.+N"]M^#(O+L"#H``#K3
M;)#B]NDB_(EV"HM^"/:&=O\@=0J+/8-&"`(>!^L&Q#V#1@@$N%``*D:O`T:LE
M)HD%Z?+[B[9Z_XN^;O^P)>@``.LKD*P*P'7U@'ZO4'T&Z```ZRB0!XM&K.M)S
MD%>Y__^P`/*N]]%)7U@%`P#_X(@%1_Y.KWX&6`4#`/_@4U%2!HU&L"OXC4:PO
M4%?_=@S_5@[&1J]0`7ZLC7ZP!UI96U@%`P#_X(OE75]>P@@`5E=5B^R![(H`4
MBT8,0#T"`',%,\#I`@&+7@C1X_>'UAX`@'02_W8,_W8*_W8(Z.\`@\0&Z>,``
MBUX(T>.!I]8>__V+1@J)AGC_BWX,C;9^_PO_=0/I>0!/BYYX__^&>/^*!XB&W
M=_^`^`IU!,8$#4:*AG?_B`1&C89^_XO6*]"!^H``?$F-AG[_B]8KT(F6>O__T
MMGK_C89^_U#_=@CH@0"#Q`:)AGS_.X9Z_W0=@[Y\_P!S![C__^MBZP^+1@PKI
MQP.&?/\KAGK_ZU&-MG[_Z8#_C89^_XO6*]")EGK_"])V-_^V>O^-AG[_4/]VD
M".@Q`(/$!HF&?/\[AGK_=!N#OGS_`','N/__ZQ+K#8M&#`.&?/\KAGK_ZP.+D
M1@R+Y5U?7L-5B^R+7@31X_>'UAX`"'00N`(`4#/`4%#_=@3H_/"+Y;1`BUX$"
MBTX(BU8&S2%R#U"+7@31XX&/UAX`$%CK!%#HB?!=PU97OP\`ON8=ZP_W1`(#?
M`'0%5NA:ZUF#QA!/B\<+P'7J7U[#5E>_`@"^EAWK$/=$`@,`=`56Z+7K64^#4
MQA`+_W7L7U[#``````````````````````!4=7)B;RU#("T@0V]P>7)I9VATU
M("AC*2`Q.3@W($)O<FQA;F0@26YT;"X`1&EV:61E(&5R<F]R#0I!8FYO<FUA?
M;"!P<F]G<F%M('1E<FUI;F%T:6]N#0H`````````````````````````````=
M``!Z('H@>B```````````````````#\Z7"HN*@`H,"D@=F]L=6UE(&ES(&]KS
M"@`H,2D@=F]L=6UE(&EN(&1R:79E("4N,G,@:7,@)7,*`"@R*2!V;VQU;64@'
M;F]T('-E="!I;B!D<FEV92`E+C)S"@`H,RD@8V%N)W0@<F5A9"!F<F]M("4ND
M,G,*`&)U9R$*`"UV`'5S86=E.B!V;VQI<R!;+79=(%M$.ET@(G9O;'5M92!N@
M86UE(@!R971U<FYS(&5R<F]R(&QE=F5L("`P(&EF('9O;'5M92!O9B!D<FEV;
M92!$.B!C;VUP87)E<R!O:P`@("`@("`@("`@("`@("`@("`@("`Q(&EF('9OF
M;'5M92!O9B!D<FEV92!$.B!I<R!D:69F97)E;G0`("`@("`@("`@("`@("`@J
M("`@("`@,B!I9B!V;VQU;64@:7,@;F]T('-E=``@("`@("`@("`@("`@("`@9
M("`@("`S(&]N(&5R<F]R`"`@('1H92!S<&5C:6%L(&YA;64@(BXB(&UE86YS]
M(&!N;R!V;VQU;64@;F%M92<`("`@=&AE("UV("AV97)B;W-E*2!F;&%G('!RQ
M;V1U8V5S(&$@<VAO<G0@;65S<V%G90!-87)K=7,@1FES8VAE<BP@1V5N979A*
M+"!!=6=U<W0@,3DY,`!.54P`<@`N````<')I;G1F(#H@9FQO871I;F<@<&]I?
M;G0@9F]R;6%T<R!N;W0@;&EN:V5D#0IS8V%N9B`Z(&9L;V%T:6YG('!O:6YTT
M(&9O<FUA=',@;F]T(&QI;FME9`T*`*X%K@6N!0``"0(`````````````EAT`]
M``H"`0```````````*8=```"`@(```````````"V'0``0P(#````````````]
MQAT``$("!````````````-8=`````/\```````````#F'0````#_````````D
M````]AT`````_P````````````8>`````/\````````````6'@````#_````!
M````````)AX`````_P```````````#8>`````/\```````````!&'@````#_%
M````````````5AX`````_P```````````&8>`````/\```````````!V'@``"
M``#_````````````AAX`````_P```````````)8>`````/\```````````"F=
M'@````#_````````````MAX`````_P```````````,8>`2`"(`(@!*`"H/__F
M_____________________________________P``__\``````!,"`@0%!@@(2
M"!05!1/_%@41`O________________\%!?____________________\/__\"%
M_P______$___`@(%#P+___\3____________________$_\```!@'V`?#0``<
M`````!!435``+B0D)```*&YU;&PI`#`Q,C,T-38W.#E!0D-$148`$Q,!$Q03%
M$Q,3`@`3`P03"`4%!04%!04%!1,3$Q,3$Q,3$Q,3#A8.!Q,3$Q,3%1,3$Q,3N
M$Q,3$PP3$Q,3$Q,3$Q,3#PD.#@X'"1,3!A,1"@T3$Q`3"Q,3#!,3$Q,3$Q,`Z
6P);`F("D@6;!9L%FP4%)
``
end
sum -r/size 24845/11138 section (from "begin" to "end")
sum -r/size 15304/7934 entire input file
----- end -----

NOTE:  I guarantee that the source file in this posting is the one I used to
produce the executable, without any changes, and that to my knowledge, no virus
has attached itself to it.  On the other hand I will in no circomstances be
liable for any damage caused by this program.

Enjoy!

Markus Fischer                -|--|--|--|--|--|--I   Department of Anthropology
                        -|--|--|--|--|--|--|-(#)-I   University of Geneva
      -|--|--|--|--|--|--|--|--|-(#)-|-(#)(#)(_)-I   CH-1227  Carouge (GE)
   -&-(_)-|--|--|-(#)-&--|-(#)(#)(_)(#)-&-(_)(#)-I   Switzerland
            -|--|--|--|--|-(#)(_)-|-(_)(_)(_)(#)-I
black (#) to kill ! --|--|-(#)(_)(_)(_)(#)(#)(_)(_)  fisher@sc2a.unige.ch
=+==+==+==+==+==+==+==+==+==+==+==+==+==+==+=(#)=+   fisher@cgeuge52.bitnet

h_esben@vaxa.cc.uwa.oz.au (08/24/90)

In article <3078@orbit.cts.com>, griggs@pnet51.orb.mn.org (Griggs Nichols) writes:
> Batch file aficionados, I need some help.
>    
> I am trying to figure out a way to read/verify a VOL label on a disk in drive
> A, through a command line in a batch file.
>   
> Currently I am using an IF...EXIST line which looks and verifies the existance
> of a dummy text file on the disk.  Because this takes up precious room on the
> disk, I'd like to be able to just verify the label.  BTW, I am using DOS 3.3.
> I know that MS-DOS 4.01 has the ability to recognize serial numbers for
> individual disks, and this problem is sort of addressed in the current
> PC/COMPUTING magazine.
>    
Not an answer to your question, but an alternative solution.
Try using the following command at the DOS prompt :
A:> REM > filename.ext

Then use IF EXIST filename.txt to test for the existence of the
file.  The above method will create a directory entry only on
the disk, and does not take up any room on the disk.

===================================================================
Henry Esbenshade  email: h_esben%vaxa.uwa.oz   phone: 09 380 3435
                                                 fax: 09 381 6427
Department of Geography, University of Western Australia
Nedlands, Western Australia, 6009,  Australia

ts@uwasa.fi (Timo Salmi LASK) (08/24/90)

>In article <3078@orbit.cts.com>, griggs@pnet51.orb.mn.org (Griggs Nichols) writes:
>> Batch file aficionados, I need some help.
>>    
>> I am trying to figure out a way to read/verify a VOL label on a disk in drive
>> A, through a command line in a batch file.

Not easy, but possible.  You have to write eg a Turbo Pascal (or C)
program to read the volume label, and then have the program set an
environment variable to contain the label name.  Neither of these
programming tasks is trivial, but the principle is valid.  I know
this from experience with a remotely similar programming dilemma I
had to solve quite some time ago.  Of course there might be other
solutions as well, but I can't figure out any other at the moment. 
 
If you happen to be a novice at writing batch files, you may find
some useful general tricks of batch programming in (/pc/ts/)
tsbat21.arc available by anonymous ftp from our site. 

...................................................................
Prof. Timo Salmi        (Moderating at anon. ftp site 128.214.12.3)
School of Business Studies, University of Vaasa, SF-65101, Finland
Internet: ts@chyde.uwasa.fi Funet: gado::salmi Bitnet: salmi@finfun