Compare Two Directory Structures
Identify Member Changes, Deletes and Inserts
  Table of Contents  v-21.01.01 - cpdirx01.htm 
  Introduction
  Logic Flow Diagram
  Logic Flow Overview
  Primary Job Scripts
  Compare Directory Structures
  Ancillary Functions
  Callable Script, Compare Directory Structures
  Set the Environment
  Display and Log Messages
  Summary
  Software Agreement and Disclaimer
  Downloads and Links
  Current Server or Internet Access
  Internet Access Required
  Glossary of Terms
  Comments or Feedback
  Company Overview
The SimoTime Home Page 

Table of Contents Previous Section Next Section Introduction

This document describes a process that will compare the content of two (2) directory structures and their associated sub-directories. The methodology will create a directory listing for each of the directory structures. The listing files are then reformatted and sorted prior to the compare and tracking of added or deleted members within the directory structures.

Note: The compare of the two listing files is done by a COBOL program that was generated by SimoTime technology and compiled with Micro Focus technology. The sorting of the listing files allows the compare process to identify differences within the directory structures and to identify added or deleted members. from within the directories.


We have made a significant effort to ensure the documents and software technologies are correct and accurate. We reserve the right to make changes without notice at any time. The function delivered in this version is based upon the enhancement requests from a specific group of users. The intent is to provide changes as the need arises and in a timeframe that is dependent upon the availability of resources.

Copyright © 1987-2021
SimoTime Technologies and Services
All Rights Reserved

Table of Contents Previous Section Next Section Logic Flow Diagram

The following flow chart provides a high level view of the logic flow for the process that does a compare to two directory structures and their associated sub-directories.

 
               
 
 
 
 
 
 
Job Step
01 of 03
 
 
 
 
 
 
 
Job Step 01 of 03
 
Parameters
P1, P2 and P3
 
 
Accept
Parameters
 
 
Batch Job
Prepare
Accept parameters from caller
   
call
ENV1BASE
 
 
Environment
Variables
Set common environment variable
 
 
 
 
 
 
 
Job Step
02 of 03
 
 
 
 
 
 
Job Step 01 of 03
Job Step 02 of 03
 
call
Compare
Job Script
Refer to Note: 01
   
BASELINE
Directory
Structure
   
   
Sub Task 01
Directory
Listing
   
   
BASELINE
Directory
Listing
Create lists for Directory Structures
   
   
   
UNPROVEN
Directory
Structure
   
   
   
   
   
UNPROVEN
Directory
Listing
   
BASELINE
Directory
Listing
 
 
Sub Task 02
Reformat
BASELINE
 
 
BASELINE
Directory
Listing 02
Reformat the BASELINE list
   
BASELINE
Directory
Listing 02
 
 
Sub Task 03
Sort
BASELINE
 
 
BASELINE
Directory
Listing 03
Sort the BASELINE list, refer to Note: 02
   
UNPROVEN
Directory
Listing
 
 
Sub Task 03
Reformat
UNPROVEN
 
 
UNPROVEN
Directory
Listing 02
Reformat the UNPROVEN list
   
UNPROVEN
Directory
Listing 02
 
 
Sub Task 05
Sort
UNPROVEN
 
 
UNPROVEN
Directory
Listing 03
Sort the UNPROVEN list, refer to Note: 02
   
BASELINE
Directory
Listing 03
   
   
Sub Task 06
CPDIRXC2
Listing
   
   
SYSLUSER
Compare
Results
Compare content of Directoy Structures
   
   
UNPROVEN
Directory
Listing 03
   
   
   
   
SYSOUT
 
 
 
 
 
 
 
Job Step
03 of 03
 
 
 
 
 
 
Job Step 02 of 03
Job Step 03 of 03
 
Review
Results
   
   
SYSLUSER
Results of Compare Process
   
   
   
SYSOUT
Program Messages
   
   
   
JOBLOG
Job Script Messages
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Job Step 03 of 03
 
Note:1 After the first sub-task is executed the input for each of the remaining sub-tasks will be the output of a preceding sub-task.
Note:2 The sorting of the list files will allow the compare process to track added or deleted members from within the directory structures.
Job Script Logic for Comparing the Content of two Directory Structures
 

Color Associations: The  light-green  boxes are unique to SIMOTIME Technologies using an IBM Mainframe System or Micro Focus Enterprise Developer. The  light-red  boxes are unique to the SIMOTIME Technologies using a Linux, UNIX or Windows System and COBOL Technologies such as Micro Focus. The  light-yellow  boxes are SIMOTIME Technologies, Third-party Technologies, decision points or program transitions in the processing logic or program generations. The  light-blue  boxes identify the input/output data structures such as Documents, Spreadsheets, Data Files, VSAM Data Sets, Partitioned Data Set Members (PDSM's) or Relational Tables. The  light-gray  boxes identify a system function or an informational item.

WIP

Table of Contents Previous Section Next Section Logic Flow Overview

The following outline provides a high level view of the logic flow for the process that does a compare to two directory structures and their associated sub-directories.

1. Job_Step 01 of 03, Set the System and Job environments
2. Job_Step 02 of 03, Call ZSYS_DIR_LIST_COMPARE.cmd to do the compare of the Directory Structures.
2.1. Sub_Task 01, Create listings of the content of the Directory Structures.
2.1.1. Use the Windows SET comand to map the file names
2.1.1.1. set BASELINE=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE.txt
2.1.1.2. set UNPROVEN=%COMP_LIB1%\LOGS\BKUP\%3_UNPROVEN.txt
2.1.2. Use the Windows DIR comand to create a listing
2.1.2.1. dir /S %1\*.* /a-d >%BASELINE%
2.1.2.2. dir /S %1\*.* /a-d >%UNPROVEN%
2.2. Sub_Task 02, Reformat the directory listing for the BASELINE Directory structure.
2.2.1. Use the Windows SET comand to map the file names
2.2.1.1. set SYSUT1=%BASELINE%
2.2.1.2. set SYSUT2=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE_02.txt
2.2.2. Use the Micro Focus RUN program to Execute the COBOL Reformat program. The input for this sub-task is the output of the previous sub-task.
2.2.2.1. run DIRLSTC8
2.3. Sub_Task 03, Sort the directory listings for the BASELINE Directory structure.
2.3.1. Use the Windows SET comand to map the file names
2.3.1.1. set DS1_WORK=%SYSUT2%
2.3.1.2. set DS1_SORT=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE_03.txt
2.3.2. Execute the Micro Focus MFSORT program. The input for this sub-task is the output of the previous sub-task.
2.3.2.1. mfsort sort fields=(40,513,ch,a) use %DS1_WORK% org ls record (f 2048) give %DS1_SORT% include cond=(1,1,ss,ne,c' ')
2.4. Sub_Task 04, Reformat the directory listing for the UNPROVEN Directory structure.
2.4.1. Use the Windows SET comand to map the file names
2.4.1.1. set SYSUT1=%UNPROVEN%
2.4.1.2. set SYSUT2=%COMP_LIB1%\LOGS\BKUP\%3_UNPROVEN_02.txt
2.4.2. Execute a COBOL program. The input for this sub-task is the output of the previous sub-task.
2.4.2.1. run DIRLSTC8
2.5. Sub_Task 05, Sort the directory listings for the UNPROVEN Directory structure. The input for this sub-task is the output of the previous sub-task.
2.5.1. Use the Windows SET comand to map the file names
2.5.1.1. set DS2_WORK=%SYSUT2%
2.5.1.2. set DS2_SORT=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE_03.txt
2.5.2. Execute the Micro Focus MFSORT program.
2.5.2.1. mfsort sort fields=(40,513,ch,a) use %DS2_WORK% org ls record (f 2048) give %DS2_SORT% include cond=(1,1,ss,ne,c' ')
2.6. Sub_Task 06, Compare the listing files.
2.6.1. Use the Windows SET comand to map the file names
2.6.1.1. set SYSUT1=%DS1_SORT%
2.6.1.2. set SYSUT2=%DS2_SORT%
2.6.2. Use the Micro Focus RUN program to Execute the COBOL Compare program.
2.6.2.1. run CPDIRXC2
3. Job_Step 03 of 03, End of Job Processing.
3.1. Review the Results.
3.1.1. Results for the Job Script Execution.
3.1.1.1. SIMONOTE=%BaseLib1%\LOGS\JOBLOG_USER.txt
3.1.2. Results posted by individual programs.
3.1.2.1. SYSOUT=%BaseLib1%\LOGS\SYSOUT_USER.txt
3.1.3. Results for the Compare Logic
3.1.3.1. SYSLUSER=%COMP_LIB1%\LOGS\SYSLUSER_COMPARE_%3.htm

 

Table of Contents Previous Section Next Section Primary Job Scripts

This suite of Job Scripts will show how to create two (2) sample directories with three (3) files in each directory. Next, this example describes how to create two ASCII/Text files with each containing a list of members from the specified directories. Sub-directory names can be omitted by using the "/a-d" parameter of the DIR Command. The files could be sorted using the "/on" parameter that is an attribute of the DIR command. However, the "/on" does not provide a directory listing in an ASCII collating sequence. Instead of the upper case letters being sorted before the lower case letters the cases are intertwined. For example, the "/on" arranges the list "A,a,B,b,C,c,D,d, etc..." and the ASCII collating sequence is "A,B,C,D, etc..." followed by "a,b,c,d, etc...". The files will be processed by the Micro Focus SORT program to drop records that have a space in position 1. Also, the final step in this process uses a COBOL program to compare the two listing files and this program depends on the files being in an ASCII collating sequence by name in order to track inserts and deletes. Also, this example describes how to set environment variables and delete any work files created by a previous run of this procedure.

Table of Contents Previous Section Next Section Compare Directory Structures

The following Command Script (CMD_ADM1_DIR_LIST_COMP_A1STPG01.cmd) will compare the contents of two (2) separate directory structures.

@echo OFF
     set JOB_NAME=ADM1_DIR_LIST_COMP_A1STPG01
rem  * *******************************************************************
rem  *       This Job Script is provided by SimoTime Technologies        *
rem  *           (C) Copyright 1987-2021 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text   - Compare the contents of two Directory Structures
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * This Job Script prepares the environment and calls the
rem  * ZSYS_DIR_LIST_COMPARE.cmd job script to compare the contents of
rem  * two Directory Structures by performig the following tasks.
rem  *
rem  * 1. Create listings of the content of the Directory Structures.
rem  *    1.1. Create listing of the content of the BASELINE Directory Structure.
rem  *    1.2. Create listing of the content of the UNPROVEN Directory Structure.
rem  * 2. Reformat the directory listing for the BASELINE Directory structure.
rem  * 3. Reformat the directory listing for the UNPROVEN Directory structure.
rem  * 4. Sort the directory listing for the BASELINE Directory structure.
rem  * 5. Sort the directory listing for the UNPROVEN Directory structure.
rem  * 6. Compare the BASELINE and UNPROVEN directory listings.
rem  *
rem  * This Job Script calls the following Windows Command Files.
rem  * 1. ENV1BASE.cmd       - provides a single point for setting
rem  *                         commonly used environment variables.
rem  * 2. SIMONOTE.cmd       - provides a consistent process for
rem  *                         displaying messages to the screen and
rem  *                         writing to a journal or log file.
rem  * 3. ZSYS_DIR_LIST_COMPARE.cmd - do the actual compare of the files.
rem  * *******************************************************************
     set COMP_LIB1=D:\BAK_20210906_A1STPG01
     set COMP_LIB2=C:
     set MBR_LIST=%COMP_LIB1%\LOGS\MBR_LIST_%JOB_NAME%.TXT
rem  *
     call ..\ENV1BASE %JOB_NAME% %COMP_LIB1%
     set AOK_Count=0
     set NOK_Count=0
rem  *
     call SIMONOTE "*******************************************************************************%JOB_NAME%.cmd "
     call SIMONOTE "* Job_Step 01 of 03, Preparing the Job Environment."
rem  *
     if exist %MBR_LIST% erase %MBR_LIST%
     echo A1STPG01>%MBR_LIST%
rem  *
     call SIMONOTE "* COMP_LIB1 is %COMP_LIB1% "
     call SIMONOTE "* COMP_LIB2 is %COMP_LIB2% "
     call SIMONOTE "* MBR_LIST is %MBR_LIST% "
     call SIMONOTE "* SIMONOTE Press any key to start the COMPARE Process "
     pause
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "* Job_Step 02 of 03, Execute the Compare Processes. "
     for /F "eol=; tokens=1,2* delims=." %%i in (%MBR_LIST%) do (call ZSYS_DIR_LIST_COMPARE %COMP_LIB1%\%%i %COMP_LIB2%\%%i %%i)
rem  *
:EOJTAG
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "* Job_Step 03 of 03, End of Job processing."
     call SIMONOTE "* Compare Count for AOK is %AOK_Count% "
     call SIMONOTE "* Compare Count for NOK is %NOK_Count% "
     if "%NOK_Count%" == "0" goto :EOJAOK
     call SIMONOTE "* ABENDING JOB_NAME %JOB_NAME%.cmd "
     goto :END
:EOJAOK
     call SIMONOTE "* Finished JOB_NAME %JOB_NAME%.cmd "
:END
     if not "%SimoGENS%" == "BATCH" pause

Table of Contents Previous Section Next Section Ancillary Functions

This section provides technical detail about the supporting scripts and programs used or called by the primary jobs.

Table of Contents Previous Section Next Section Callable Script, Compare Directory Structures

The following job script or Windows command file (CMD_ZSYS_DIR_LIST_COMPARE.cmd) is called from other job scripts to sort and compare the contents of two ASCII/Text files. The ASCII/Text files should contain a list of the members included in two directory structures.

     set CMD_NAME=ZSYS_DIR_LIST_COMPARE
rem  * ************************************************************************
rem  * It is the callers reponsibility to provide the names of the Primary
rem  * Directory Structure and a Secondary Directory Structure.
rem  * The following parameters are received from the calling command file.
rem  * Parameter  Description
rem  * ---------  ------------------------------------------------------------
rem  *    1.      Define the path or location of the primary directories.
rem  *            1.1.  This path provides access to a BASELINE result.
rem  *    2.      Define the path or location of the secondary directories.
rem  *            2.1.  This path provides access to the UNPROVEN result.
rem  *    3.      Define the name of directories to be compared
rem  * ************************************************************************
rem  *
rem  *    ************     ************
rem  *    * P1,P2,P3 *-----* BatchJob *                   * Accept Parameters
rem  *    ************     ********cmd*
rem  *                          *
rem  *    ************     ************     ************
rem  *    * BASELINE *-----*   dir    *-----* DS1_LIST *  * List the BASELINE Directory Structure
rem  *    ********dir*     ********cmd*     *******lseq*
rem  *                          *
rem  *    ************     ************     ************
rem  *    * UNPROVEN *-----*   dir    *-----* DS2_LIST *  * List the UNPROVEN Directory Structure
rem  *    ********dir*     ********cmd*     *******lseq*
rem  *                          *
rem  *                          *
rem  *    ************     ************     ************
rem  *    * DS1_LIST *-----* DIRLSTC8 *-----* DS1_WORK *  * Reformat the BASELINE Listing
rem  *    *******lseq*     ********cbl*     *******lseq*
rem  *                          *
rem  *                          *
rem  *    ************     ************     ************
rem  *    * DS2_LIST *-----* DIRLSTC8 *-----* DS2_WORK *  * Reformat the UNPROVEN Listing
rem  *    *******lseq*     ********cbl*     *******lseq*
rem  *                          *
rem  *    ************     ************     ************
rem  *    * DS1_WORK *-----*  MFSORT  *-----* DS1_SORT *  * Sort the BASELINE Listing
rem  *    *******lseq*     ********utl*     *******lseq*
rem  *                          *
rem  *    ************     ************     ************
rem  *    * DS2_WORK *-----*  MFSORT  *-----* DS2_SORT *  * Sort the UNPROVEN Listing
rem  *    *******lseq*     ********utl*     *******lseq*
rem  *                          *
rem  *                          *
rem  *    ************     ************     ************
rem  *    * DS1_SORT *-----* CPDIRXC2 *-----* SYSLUSER *  * Compare the Listing Files
rem  *    *******lseq*  *  ********cbl*     *******lseq*
rem  *                  *       *
rem  *    ************  *       *
rem  *    * DS2_SORT *--*       *
rem  *    *******lseq*          *
rem  *                     ************
rem  *                     *   EOJ    *
rem  *                     ************
rem  *
rem  * ************************************************************************
rem  *
     set COMPARE_STATUS=0
     set SYSLUSER=%COMP_LIB1%\LOGS\SYSLUSER_COMPARE_%3.htm
     call SIMONOTE "+ Starting %CMD_NAME%, RC=%COMPARE_STATUS%, PGM=%1 "
     call SIMONOTE "+ JOBLOG is %SIMONOTE% "
     call SIMONOTE "+ SYSOUT is %SYSOUT% "
     call SIMONOTE "+ Progress %CMDNAME% Compare the BASELINE Directory Structure with the UNPROVEN Directory Structure "
     call SIMONOTE "+ Please Wait, %DATE%, %TIME% "
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "+ Sub_Task 01, Create the listings for the Directories and their sub-Directoriess"
     set BASELINE=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE.txt
     set UNPROVEN=%COMP_LIB1%\LOGS\BKUP\%3_UNPROVEN.txt
     call SIMONOTE "+ BASELINE is %BASELINE% "
     call SIMONOTE "+ UNPROVEN is %UNPROVEN% "
     dir /S %1\*.* /a-d >%BASELINE%
     dir /S %2\*.* /a-d >%UNPROVEN%
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "+ Sub_Task 02, Reformat the directory listings for the BASELINE Directory structure"
     set SYSUT1=%BASELINE%
     set SYSUT2=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE_02.txt
     call SIMONOTE "+ SYSUT1 is %SYSUT1% "
     call SIMONOTE "+ SYSUT2 is %SYSUT2% "
     run DIRLSTC8
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "+ Sub_Task 03, Sort the directory listings for the BASELINE Directory structure"
     set DS1_WORK=%SYSUT2%
     set DS1_SORT=%COMP_LIB1%\LOGS\BKUP\%3_BASELINE_03.txt
     set SYSOUT=%COMP_LIB1%\LOGS\SYSOUT_%3_BASELINE.txt
     call SIMONOTE "+ DS1_WORK is %DS1_WORK% "
     call SIMONOTE "+ DS1_SORT is %DS1_SORT% "
     mfsort sort fields=(40,513,ch,a) use %DS1_WORK% org ls record (f 2048) give %DS1_SORT% include cond=(1,1,ss,ne,c' ')
     set SYSOUT=%SYSOUT_ENV1BASE%
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "+ Sub_Task 04, Reformat the directory listings for the UNPROVEN Directory structure"
     set SYSUT1=%UNPROVEN%
     set SYSUT2=%COMP_LIB1%\LOGS\BKUP\%3_UNPROVEN_02.txt
     call SIMONOTE "+ SYSUT1 is %SYSUT1% "
     call SIMONOTE "+ SYSUT2 is %SYSUT2% "
     run DIRLSTC8
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "+ Sub_Task 05, Sort the directory listings for the UNPROVEN Directory structure"
     set DS2_WORK=%SYSUT2%
     set DS2_SORT=%COMP_LIB1%\LOGS\BKUP\%3_UNPROVEN_03.txt
     set SYSOUT=%COMP_LIB1%\LOGS\SYSOUT_%3_UNPROVEN.txt
     call SIMONOTE "+ DS2_WORK is %DS2_WORK% "
     call SIMONOTE "+ DS2_SORT is %DS2_SORT% "
     mfsort sort fields=(40,513,ch,a) use %DS2_WORK% org ls record (f 2048) give %DS2_SORT% include cond=(1,1,ss,ne,c' ')
     set SYSOUT=%SYSOUT_ENV1BASE%
rem  *
     call SIMONOTE "+ --------------------------------------------------------------------------- * "
     call SIMONOTE "+ Sub_Task 06, Compare the BASELINE and UNPROVEN directory listings"
     set SYSUT1=%DS1_SORT%
     set SYSUT2=%DS2_SORT%
     call SIMONOTE "+ SYSUT1 is %SYSUT1% "
     call SIMONOTE "+ SYSUT2 is %SYSUT2% "
     run CPDIRXC2
     if not "%ERRORLEVEL%" == "0" set COMPARE_STATUS=40
     if not "%COMPARE_STATUS%" == "0" goto :COMPARE_NOK
rem  *
rem  * ************************************************************************
:COMPARE_AOK
     set /A AOK_Count=%AOK_Count% + 1
     call SIMONOTE "+ Complete %CMD_NAME%, RC=%COMPARE_STATUS%, AOK=%AOK_Count%, NOK=%NOK_Count%, PGM=%1 "
     goto :EOJEND
rem  *
rem  * ************************************************************************
:COMPARE_NOK
     set JobStatus=%COMPARE_STATUS%
     set /A NOK_Count=%NOK_Count% + 1
     call SIMONOTE "+ ABENDING %CMD_NAME%, RC=%COMPARE_STATUS%, AOK=%AOK_Count%, NOK=%NOK_Count%, PGM=%1, !!!ABENDING!!! "
rem  *     echo + %1 - Error during Compare, refer to %COMP_LIB1%\LOGS\%SYSLUSER%>%COMP_LIB1%\LOGS\%1.ERR
     call SIMONOTE "+ %COMP_LIB1%\LOGS\%3.ERR "
     echo + Error during Compare, refer to %SYSLUSER% >%COMP_LIB1%\LOGS\%3.ERR
     goto :EOJEND
rem  *
rem  * ************************************************************************
:EOJEND
     call SIMONOTE "+ Thank you, %DATE%, %TIME% "
     exit /b

Table of Contents Previous Section Next Section Set the Environment

A command file (ENV1BASE.cmd) located in the sub-directory named ProdLibA) is called from other command files to set commonly used environment variables. This provides a single point of definition. The following is a listing of the contents of the command file.

rem  * *******************************************************************
rem  *               ENV1BASE.cmd - a Windows Command File               *
rem  *         This program is provided by SimoTime Technologies         *
rem  *           (C) Copyright 1987-2021 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text   - Single point to set commonly used environment variables.
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * Set the commonly used environment variables. This job is used to
rem  * provide a single point for managing the commonly used environment
rem  * variables.
rem  *
     set BaseLib1=C:\A1STPG01\SP03\DEVL
     set BASEALT1=C:\SIMOSAM8
     set BASEAPP=%BaseLib1%
     set BASECAT=%BaseLib1%\DATA
     set BASESYS=%BaseLib1%\SYS1
     set SYSLOG=%BaseLib1%\LOGS\SYSLOG_USER.txt
     set SYSOUT=%BaseLib1%\LOGS\SYSOUT_USER.txt
     set SIMONOTE=%BaseLib1%\LOGS\JOBLOG_USER.txt
     if [%1]==[] goto NO_POST
     if [%2]==[] goto LOG_DEFAULT
        set SIMONOTE=%COMP_LIB1%\LOGS\JOBLOG_%1.txt
        set SYSOUT=%COMP_LIB1%\LOGS\SYSOUT_%1.txt
        set SYSLOG=%COMP_LIB1%\LOGS\SYSLOG_%1.txt
        goto LOG_END
:LOG_DEFAULT
        set syslog=%BaseLib1%\LOGS\SysLog_SimoAdm1.TXT
        set SYSOUT=%BaseLib1%\LOGS\SYSOUT_SIMONOTE.TXT
        set SIMONOTE=%BaseLib1%\LOGS\JOBLOG_SIMONOTE.txt
:LOG_END
     set SYSOUT_ENV1BASE=%SYSOUT%
     if [%1]==[] goto NO_POST
     set SYSOUT=%BaseLib1%\LOGS\SYSOUT_%1.txt
     call SIMONOTE "*******************************************************************************%1"
     call SIMONOTE "* ENV1BASE is preparing the System Environment..."
     call SIMONOTE "* SIMOLIBR is %SIMOLIBR%"
     call SIMONOTE "* MIFOSYS1 is %MIFOSYS1%"
     call SIMONOTE "* BASELIB1 is %BASELIB1%"
:NO_POST
     set UMAPALIB=%BASECAT%\ASC1
     set UMAPELIB=%BASECAT%\EBC1
     set MIFOEDEV=C:\Program Files (x86)\Micro Focus\Enterprise Developer
     set MIFOVCBL=C:\Program Files (x86)\Micro Focus\Visual COBOL Build Tools
     set MIFOESTU=C:\Program Files (x86)\Micro Focus\Studio Enterprise Edition 6.0
     set MIFOEMFE="C:\Program Files (x86)\Micro Focus\Mainframe Express"
rem  *
     set COBIDY=%BASEAPP%\COBIDY
     set COBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SIMOLIBR%
     set LIBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SIMOLIBR%
     set COBCPY=%BaseLib1%\COBCPY1;%SIMOLIBR%
rem  *
rem  * Large file support, performance tuning and record locking of the File Handler
     set EXTFH=%BASESYS%\CONFIG\EXTFHBIG.cfg
rem  *
     set ES_ALLOC_OVERRIDE=%BASESYS%\CONFIG\CATMAPA1.cfg
rem  *
     if "%SIMOPATH%" == "Y" goto JUMPPATH
     if "%MIFOSYS1%" == "EDEV" goto JUMPEDEV
     if "%MIFOSYS1%" == "VCBL" goto JUMPVCBL
     if "%MIFOSYS1%" == "ESTU" goto JUMPESTU
     if "%MIFOSYS1%" == "EMFE" goto JUMPEMFE
:JUMPEDEV
     set path=%BASESYS%\LOADLIB;%MIFOEDEV%\bin;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set COBCPY=%BASEAPP%\COBCPY1;%BASEAPP%\COBCPY2;%BASEAPP%\COBCPY6;%SIMOLIBR%;%MIFOEDEV%\CPYLIB
     set MIFOBASE=%MIFOEDEV%
     goto JUMPPATH
:JUMPVCBL
     set path=%MIFOVCBL%\bin;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     goto JUMPPATH
:JUMPESTU
     set MIFOBASE=%MIFOESTU%\Base
     set MIFOBIN=%MIFOBASE%\bin
     set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set COBCPY=%BASEAPP%\COBCPY1;%BASEAPP%\COBCPY2;%BASEAPP%\COBCPY6;%SIMOLIBR%;%MIFOBASE%\SOURCE
     goto JUMPPATH
:JUMPEMFE
     set MIFOBASE=%MIFOEMFE%\Base
     set MIFOBIN=%MIFOBASE%\bin
     set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set COBCPY=%BASEAPP%\COBCPY1;%BASEAPP%\COBCPY2;%BASEAPP%\COBCPY6;%SIMOLIBR%;%MIFOBASE%\SOURCE
     goto JUMPPATH
rem  *
:JUMPPATH
     set JobStatus=0000
     call SIMONOTE "* SIMOLIBR is %SIMOLIBR%"
     call SIMONOTE "* MIFOSYS1 is %MIFOSYS1%"
     call SimoNOTE "* Env1BASE is returning to caller"

Table of Contents Previous Section Next Section Display and Log Messages

The following (SIMONOTE.cmd) is a listing of the contents of the SimoNOTE.CMD command file.

@echo OFF
rem  * *******************************************************************
rem  *               SIMONOTE.cmd - a Windows Command File               *
rem  *         This program is provided by SimoTime Technologies         *
rem  *            (C) Copyright 1987-2019 All Rights Reserved            *
rem  *              Web Site URL:   http://www.simotime.com              *
rem  *                    e-mail:   helpdesk@simotime.com                *
rem  * *******************************************************************
rem  *
rem  * Text    - Display message on screen and write to a log file.
rem  * Author  - SimoTime Technologies
rem  *
rem  * This script may be called from other scripts and expects a single
rem  * parameter enclosed in double quotes. The double quotes will be
rem  * removed. Before writing to the log file a date and time stamp
rem  * will be inserted in front of the message text.
rem  *
rem  * Note: The tilde (~) removes leading/trailing double-quotes.
rem  *
if "%SimoNOTE%" == "" set SimoNOTE=c:\SimoLIBR\LOGS\SimoTime.LOG
echo %date% %time% %~1>> %SimoNOTE%
echo %~1

Table of Contents Previous Section Next Section Summary

This document describes a process that will compare the content of two (2) directory structures and their associated sub-directories. The methodology will create a directory listing for each of the directory structures. The listing file are then reformatted and sorted prior to the compare and tracking of added or deleted members within the directory structures. This document may be used to assist as a tutorial for new programmers or as a quick reference for experienced programmers.

In the world of programming there are many ways to solve a problem. This documentation and software were developed and tested on systems that are configured for a SIMOTIME environment based on the hardware, operating systems, user requirements and security requirements. Therefore, adjustments may be needed to execute the jobs and programs when transferred to a system of a different architecture or configuration.

SIMOTIME Services has experience in moving or sharing data or application processing across a variety of systems. For additional information about SIMOTIME Services or Technologies please contact us using the information in the  Comments or Feedback  section of this document.

Table of Contents Previous Section Next Section Software Agreement and Disclaimer

Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Technologies. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Technologies.

SimoTime Technologies makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Technologies shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.

Table of Contents Previous Section Next Section Downloads and Links

This section includes links to documents with additional information that are beyond the scope and purpose of this document. The first group of documents may be available from a local system or via an Internet connection, the second group of documents will require an Internet connection.

Note: A SIMOTIME License is required for the items to be made available on a local system or server.

Table of Contents Previous Section Next Section Current Server or Internet Access

The following links may be to the current server or to the Internet.

Note: The latest versions of the SimoTime Documents and Program Suites are available on the Internet and may be accessed using the Link to Internet icon. If a user has a SimoTime Enterprise License the Documents and Program Suites may be available on a local server and accessed using the Link to Server icon.

Link to Internet   Link to Server   Explore An Enterprise System Model that describes and demonstrates how Applications that were running on a Mainframe System and non-relational data that was located on the Mainframe System were copied and deployed in a Microsoft Windows environment with Micro Focus Enterprise Server.

Link to Internet   Link to Server   Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.

Link to Internet   Link to Server   Explore The File Status Return Codes to interpret the results of accessing VSAM data sets and/or QSAM files.

Table of Contents Previous Section Next Section Internet Access Required

The following links will require an internet connect.

A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection

Explore The Micro Focus Web Site for more information about products (including Micro Focus COBOL) and services available from Micro Focus. This link requires an Internet Connection.

Table of Contents Previous Section Next Section Glossary of Terms

Link to Internet   Link to Server   Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.

Table of Contents Previous Section Next Section Comments or Feedback

This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.

1. Send an e-mail to our helpdesk.
1.1. helpdesk@simotime.com.
2. Our telephone numbers are as follows.
2.1. 1 415 763-9430 office-helpdesk
2.2. 1 415 827-7045 mobile

 

We appreciate hearing from you.

Table of Contents Previous Section Next Section Company Overview

SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.

Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.

Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.

Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com


Return-to-Top
Directory Structure Compare, Identify Content Changes
Copyright © 1987-2021
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com