Compare Two Directory Structures
Identify Member Changes, Deletes and Inserts
|
|
|
Table of Contents |
v-21.01.01 - cpdirx01.htm |
|
|
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
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Accept parameters from caller |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set common environment variable |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Job Step 01 of 03 |
|
Job Step 02 of 03 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Refer to Note: 01 |
|
|
|
|
|
|
|
|
|
BASELINE Directory Structure |
|
|
Sub Task 01 Directory Listing |
|
|
|
|
Create lists for Directory Structures |
|
|
|
|
|
|
|
|
|
UNPROVEN Directory Structure |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sub Task 02 Reformat BASELINE |
|
|
BASELINE Directory Listing 02 |
|
|
Reformat the BASELINE list |
|
|
|
|
|
|
|
|
|
BASELINE Directory Listing 02 |
|
|
|
|
BASELINE Directory Listing 03 |
|
|
Sort the BASELINE list, refer to Note: 02 |
|
|
|
|
|
|
|
|
|
|
|
Sub Task 03 Reformat UNPROVEN |
|
|
UNPROVEN Directory Listing 02 |
|
|
Reformat the UNPROVEN list |
|
|
|
|
|
|
|
|
|
UNPROVEN Directory Listing 02 |
|
|
|
|
UNPROVEN Directory Listing 03 |
|
|
Sort the UNPROVEN list, refer to Note: 02 |
|
|
|
|
|
|
|
|
|
BASELINE Directory Listing 03 |
|
|
Sub Task 06 CPDIRXC2 Listing |
|
|
|
|
Compare content of Directoy Structures |
|
|
|
|
|
|
|
|
|
UNPROVEN Directory Listing 03 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Job Step 02 of 03 |
|
Job Step 03 of 03 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Results of Compare Process |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Program Messages |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Job Script Messages |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
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.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.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.
|
3.
|
Job_Step 03 of 03, End of Job Processing.
|
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
|
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.
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
Ancillary Functions
This section provides technical detail about the supporting scripts and programs used or called by the primary jobs.
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
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"
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
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.
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.
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.
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 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 icon.
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.
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.
Explore The File Status Return Codes to interpret the results of accessing VSAM data sets and/or QSAM files.
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.
Glossary of Terms
Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.
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.
|
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.
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 |