home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 18 REXX
/
18-REXX.zip
/
rxls03.cmd
< prev
next >
Wrap
OS/2 REXX Batch file
|
1995-01-01
|
6KB
|
76 lines
/*------------------------------------------------------------------------*\
| |
| 9501LS02.CMD (rxls03) - Synchronize detached DIR command |
| |
\*------------------------------------------------------------------------*/
if RxFuncQuery( 'SysLoadFuncs' ) then /* 0006 */
do /* 0007 */
call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs' /* 0008 */
call SysLoadFuncs /* 0009 */
end /* 0010 */
/* 0011 */
/*-----------------------------------*\ /* 0012 */
| Build list of drives (with colon) | /* 0013 */
\*-----------------------------------*/ /* 0014 */
drive_list = SysDriveMap() /* 0015 */
/* 0016 */
/*-------------------------------------------*\ /* 0017 */
| Start detached DIR command for each drive | /* 0018 */
\*-------------------------------------------*/ /* 0019 */
do drive_number = 1 to WORDS( drive_list ) /* 0020 */
drive_letter = LEFT( WORD( drive_list, drive_number ), 1 ) /* 0021 */
/* 0022 */
/* create output file & queue names */ /* 0023 */
output_file = 'DIR_' || drive_letter || '.LST' /* 0024 */
queue_name = 'QUEUE_' || drive_letter /* 0025 */
/* 0026 */
/* create & load REXX data queue */ /* 0027 */
call RXQUEUE 'DELETE', queue_name /* be sure queue didn't exist */
call RXQUEUE 'CREATE', queue_name /* create queue */ /* 0029 */
call RXQUEUE 'SET', queue_name /* set named queue active */ /* 0030 */
push DATE() TIME() /* put something in queue */ /* 0031 */
/* 0032 */
/* detach dir >file & rxqueue name /clear */ /* 0033 */
external_command = '@(@DETACH DIR ' ||, /* 0034 */
drive_letter || ':\*.* /S 1>' ||, /* 0035 */
output_file ||, /* 0036 */
' 2>&1 & RXQUEUE /clear ' ||, /* 0037 */
queue_name ||, /* 0038 */
') 1>nul 2>&1' ||, /* 0039 */
'' /* 0040 */
interpret "'" || external_command || "'" /* 0041 */
end /* 0042 */
/* 0043 */
/*-------------------------------------------------------*\ /* 0044 */
| Process the DIR output for each drive as it completes | /* 0045 */
\*-------------------------------------------------------*/ /* 0046 */
drive_number = 0 /* used for wrap list */ /* 0047 */
do while drive_list <> '' /* 0048 */
drive_number = drive_number + 1 /* 0049 */
if drive_number > WORDS( drive_list ) then /* 0050 */
do /* 0051 */
drive_number = 1 /* wrap to beginning of list */
end /* 0053 */
drive_letter = LEFT( WORD( drive_list, drive_number ), 1 ) /* 0054 */
/* 0055 */
/* see if DIR command complete - queue empty */ /* 0056 */
queue_name = 'QUEUE_' || drive_letter /* 0057 */
call RXQUEUE 'SET', queue_name /* make respective queue active */
if QUEUED() = 0 then /* 0059 */
do /* 0060 */
output_file = 'DIR_' || drive_letter || '.LST' /* 0061 */
/* ... process DIR output in .LST file */ /* 0062 */
call SysFileDelete output_file /* 0063 */
drive_list_entry = drive_letter || ':' /* append colon */
parse value drive_list with, /* 0065 */
prefix (drive_list_entry) suffix /* 0066 */
drive_list = STRIP( prefix || ' ' || suffix ) /* 0067 */
end /* 0068 */
/* 0069 */
if drive_number = WORDS( drive_list ) then /* 0070 */
do /* 0071 */
call SysSleep 2 /* quiesce this session */ /* 0072 */
end /* 0073 */
end /* 0074 */
exit /* 0075 */