VgXCopy Program Manual

DESCRIPTION OF VGXCOPY

VGXCopy is a file-oriented utility program that mirrors (reproduces or backups) a directory and its subdirectories to another directory location.  Specifically, it can copy files and subdirectories from a specified starting source drive and directory to a specified starting target drive and directory.  It can also optionally delete unmatched (unique) target files and directories.  Source and target starting directories may each be a root directory or any subdirectory.  If root directories are chosen for both source and target drives, VGXCopy will mirror the entire contents of one drive to the other.  This program is similar to but different in capabilities than its namesake, Window's own XCopy—differences are summarized here.

VGXCopy can also copy a single specified file to a specified location.

NAMING CONVENTIONS FOR FILES AND DIRECTORIES

A file or directory may be specified in VGXCopy in 2 different ways, Standard (DLC) or UNC format.  These differ in how the root directory is specified:

Format Name How Root Directory is Specified
Standard or DLC format A drive letter, colon and backslash
Universal Naming Convention (UNC) format \\<Computer Name>\<Share Name for Root Dir>\

For specifying source or target directories in VGXCopy, you must end the directory name with a backslash.
For specifying source or target single files in VGXCopy, you must not end the file name with a backslash. 

INSTRUCTIONS FOR DIRECTORY OPERATIONS

COMMAND LINE SYNTAX FOR DIRECTORY OPERATIONS

For starting VGXCopy.exe, you may use either of the following 2 main choices of command line parameters:

(1) VGXCopy.exe  SourceStartDir , TargetStartDir   [/Optional Command Line Parameters]

SourceStartDir = Starting Source Directory Specification (in DLC or UNC  format, surrounding double quotes are optional).

Examples:
C:\Data\
\\Computer1\RootDir\Data\

TargetStartDir = Starting Target Directory Specification (in DLC or UNC  format, surrounding double quotes are optional).  

Examples:
D:\Computer1\Data\
\\Computer2\RootDir\Computer1\Data\ 

Optional Command Line Parameters are parameters which will apply only to the single source/target directory pair
    (see OPTIONAL COMMAND LINE PARAMETERS).

(2) VGXCopy.exe [Initialization File]

For example, "C:\Program Files\VGXCopy\VGXCopy_xxx.ini" (see INITIALIZATION FILE for more details)

SAMPLE ACTIONS TAKEN

Depending on options selected, the final destination files on the source drive might be illustrated as follows:

Source files might include:

"C:\My Data\Images\Color\Beach\volleyball.jpg"
"\\Snap263492\SnapRoot\My Data\Images\Color\Beach\volleyball.jpg"


Target files which correspond to Source files might be any of:

"D:\Computer1\My Data\Images\Color\Beach\volleyball.jpg"
"\\Snap263492\SnapRoot\Computer1\My Data\Images\Color\Beach\volleyball.jpg"
"D:\Computer1\1\My Data\Images\Color\Beach\volleyball.jpg"
"\\Snap263492\SnapRoot\Computer1\2\My Data\Images\Color\Beach\volleyball.jpg"

OTHER FEATURES AND RECOMMENDATIONS

Only files that are unique on the source drive or that have significantly different timestamps (either newer or older) with respect to a matching target file (if any) are copied.  Unique target drive files and directories may optionally be deleted.  The target computer and target drive need not differ from the source computer and/or drive.  However, the source and target directories must not point to identical directories and the target must not contain the source and vice versa (either would be illogical).  Examples are as follows:

Source Directory Target Directory Valid?
C:\Main\Subdir\ C:\Main\ Invalid
C:\Main\ C:\Main\Subdir\ Invalid
C:\Main1\ C:\Main2\ Valid

In general, the possibility of unintended consequences is less detectable if you use a UNC path rather than a standard DLC path for local computer drives.  VGXCopy cannot exclude illogical possibilities with certainty when UNC names are used, so it is your responsibility to prevent these conditions. It is your responsibility to observe the following:

VGXCopy is programmed to automatically skip copying certain file and directories (none of these behaviors can be modified by the User):

These behaviors are summarized as follows (where S stands for the source drive, SDrive the source drive share name if used,  and T stands for the target drive, TDrive the target drive share name, \...\ signifies zero or more intervening subdirectories under the root directory):

Source Directory Behavior Target Directory Behavior

S:\Recycler\

\\Hal\SDrive\Recycler\

Always skipped when arising at the root, otherwise processed.

T:\Recycler\

\\Hal\TDrive\Recycler\

Always skipped when arising at the root, otherwise processed if requested

S:\Recycled\

\\Hal\SDrive\Recycled\

Always skipped when arising at the root, otherwise processed.

T:\Recycled\

\\Hal\TDrive\Recycled\

Always skipped when arising at the root, otherwise processed if requested

S:\System Volume Information\

\\Hal\SDrive\System Volume Information\

Always skipped when arising at the root, otherwise processed.

T:\System Volume Information\

\\Hal\TDrive\System Volume Information\

Always skipped when arising at the root, otherwise processed if requested

S:\...\TEMP\

\\Hal\SDrive\Temp\

Always skipped T:\...\TEMP\

\\Hal\TDrive\Temp\
Processed if requested
S:\...\VGXCOPY_NOCOPY\ 

\\Hal\SDrive\VGXCOPY_NOCOPY\ 
Always skipped T:\...\VGXCOPY_NOCOPY\ 

\\Hal\TDrive\VGXCOPY_NOCOPY\ 
Processed if requested


VGXCopy has most of the capabilities of the standard MS Windows utility program XCopy, plus additional desirable capabilities.  The following lists some of the differences relative to MS Windows XCopy:

INSTRUCTIONS FOR SINGLE FILE COPY OPERATIONS

INTRODUCTION

Beginning with version 4.1, it is also possible to specify the unconditional copying of a single file to an explicitly named target file location.  (See above for certain concepts regarding DLC versus UNC file naming conventions).

COMMAND LINE SYNTAX FOR SINGLE FILE COPY OPERATIONS

For starting VGXCopy.exe, you may use either of the following 2 main choices of command line parameters:

(1) VGXCopy.EXE  SourceFileSpecification , TargetFileSpecification   /C1F=Y  [/LO=Y]

Source File Specification (SourceFileSpecification)

The source file specification must be a fully qualified file specification not ending in a backslash and beginning either with a drive letter, colon and backslash (DLC format) or with the UNC format \\<ComputerName>\<ShareNameForRootDir>\....  

For example, a sample full source file specification might be either of
"C:\My Data\dog.jpg"
\\Snap263492\SnapRoot\MyData\dog.jpg

Target File Specification (TargetFileSpecification)

The target file specification must be a fully qualified file specification not ending in backslash and beginning either with a drive letter, colon and backslash (DLC format) or with the UNC format \\<ComputerName>\<ShareNameForRootDir>\....  It must end in a file name including the desired extension.  Therefore it cannot be just a directory.

For example, a sample full target file specification might be either of
"D:\Computer1\My Data\dog.jpg"
"\\Snap263492\SnapRoot\Computer1\My  Data\dog.jpg"

(2) VGXCopy.exe [Initialization File]

The initialization file may contain one or more command lines that specify Single File Copy, optionally mixed in with Directory operations.

COMMAND LINE OPTIONS FOR SINGLE FILE COPY

When a single file copy is specified via the C1F command line parameter, the only other command line parameter that will be utilized is  /LO=Y.  If this is present, all command lines will be List Only, and no actions will be taken when the program is run.

INITIALIZATION FILE

An initialization file may be used to allow batch processing by specifying multiple command line sets ("backup sets").  The initialization file must have a name in the form of VGXCopyxxxx.INI (where xxxx is 0 or more optional additional characters preceding .ini).  When an initialization file specification is passed via the command line to VGXCopy.exe, the file specification must be the only command line parameter, and it may optionally be surrounded by double quotes if desired. This file may contain blank lines, comment lines (which must begin with semicolons ; at the first character of the line), and one or more command line sets repeating the syntax shown above in COMMAND LINE SYNTAX FOR DIRECTORY OPERATIONS or COMMAND LINE SYNTAX FOR SINGLE FILE COPY OPERATIONS (except that the beginning path plus file name designating VGXCopy.EXE is omitted from each line).  Sample contents of an initialization file are given as follows:

; The next line specifies a directory copy operation:
X:\  , M:\Backups\X\   /CN=0 /CSF=Y /DIFF=0 /DTD=Y /DTF=Y /LO=N /MTD=Y /Rep=Y /QCF=Y /QONTF=Y

; The next line specifies a single file copy operation
T:\MyFiles\BackupFile.ZIP , M:\T\MyFiles\BackupFile.ZIP  /C1F=Y

The INI file passed to VGXCopy may be located in any directory.  If the User provides no command line parameters when starting VGXCopy, VGXCopy will first seek a file named VGXCopy.INI in the application directory (if such a file exists).  If none is found, it will prompt the User for the currently desired INI file, starting the search in a subdirectory of the application directory named MyINIFiles (if this subdirectory exists), otherwise starting the search in the application directory where VGXCopy is installed.   This allows the User to build a library of INI files (preferably located in the subdirectory MyINIFiles with respect to the directory where VGXCopy.exe is installed) that may be selected from when running the program.

REQUIREMENTS and LIMITATIONS

VGXCopy runs under and has been tested with Windows NT 4.0 and XP.  It has not been tested in other Windows operating systems.

VGXCopy requires a screen resolution of at least 800x600, a good chunk of memory, and at least one unused drive letter. 

You must have Notepad.EXE available on your computer in the executable path for VGXCopy to display automatically the optional report log file. Because the report contains long lines, this file is best viewed in Notepad with WordWrap turned off.

In Windows XP, VGXCopy cannot fully backup the system drive because locked system files cannot be copied—use Automated System Recovery, disk imaging, or other techniques to accomplish this.  VGXCopy does not attempt to copy file or directory permissions as can be specified on NTFS drives.  You need to have full administrative permission to do the various copy and delete procedures that VGXCopy attempts to do.

VGXCopy cannot copy any other file that is locked by a running application (such as Word, Excel, Photoshop, etc.), so close all application programs before running VGXCopy to the fullest extent possible. Note that some programs such as Internet Explorer and Adobe Acrobat may lock files once they have been accessed, even though these applications no longer appear to be running.

If you wish VGXCopy to back up the Windows NT 4.0 locked system files pertaining to the registry and the current User profile (ntuser.dat), you must have the program RegBack.exe available (it is included in the Windows NT Resource Kit) and you must provide its fully qualified file specification in the configuration form of VGXCopy. Neither VGXCopy nor RegBack.exe can backup the NT 4.0 event log files (for example, "C:\WINNT\system32\config\AppEvent.Evt" etc.), though this is usually a minor deficiency.

OPTIONAL COMMAND LINE PARAMETERS

Optional command line (CL) parameters must appear after the target directory or file and each must begin with a forward slash "/" and have an equal sign, for example, /CN=2.  Quotation marks about the value are optional, as are certain spaces.  For example the following ways to specify two parameters are all acceptable:

 /CN  = "2"  /CSF =  "Y" 
 /CN = 2 /CSF = Y 
 /CN=2/CSF=Y

Parameters specified on the command line will usually override corresponding GLOBAL OPTIONS determined by intrinsic program global defaults, saved global defaults (from the Configure form), or computed global default values, but only for the single command line involved (except where specifically noted below).  Items marked with a (*) on the Configure and Main Forms can be overridden command line parameters.  

Any parameter name entered other than the allowable ones shown below, and any improperly formatted parameter or illegal parameter value will lead to a message prompt. The User must correct any of these parameter errors before the program will permit actual file operations.

Allowable optional command line parameters are as follows:


CL Parameter CL Values Allowed Overrides Description
/C1F Y or N [specified only within a single CL set] Copy Single File
An explicit source file specification names a file to be copied unconditionally to the designated target file specification.  If this parameter appears, the only other command line parameter that is active is  /LO=Y.  All other command line parameters will be ignored for this command line.  This parameter is spelled C followed by the digit One followed by F, not CLF.
/CN=
0 to 5 inclusive Global Copy Number on Main Form (for single CL set only)

Copy Number
0 (zero) means no numeric subdirectory will be appended to the specified target directory
1 means "\1" will be appended to the stated target directory, 5 means "\5" will be appended to the stated target directory, etc.

This parameter when specified affects only a single command line.  If it is not provided, the user-adjustable global copy number displayed on the Main Form applies.  It is useful, for example, when copying to a hard drive of limited capacity or a large backup set, to force a single backup location rather than multiple successive sets as might occur if Copies to Maintain is set to a value greater than 1.  It can also be useful to circumvent the timestamps for backup sets saved in the registry, which will otherwise determine the initially suggested Copy Number to employ for backup sets lacking a /CN parameter. 

You should omit the /CN parameter from your backup set command line unless you wish to specify a specific target subdirectory for this particular backup set.  If you specify a /CN parameter, it always overrides whatever global value is specified for "Copy Number".  Note that this /CN parameter functions differently than "Copies to Maintain" described below. The /CN parameter always defines a specific target subdirectory, whereas "Copies to Maintain" specifies the maximum number of target subdirectories that will be employed in rotation in an order determined by VGXCopy based on past history of usages. 

/CSF= Y or N Main form check box  (for single CL set only)

Copy Source Files:
Y [Yes] means that source files will be copied to the corresponding target directory.
N [No] means that source files will not be copied.
This parameter when specified affects only a single command line; otherwise the global check box displayed on the Main Form applies.  This should usually be Y but it might be useful to set  it to N, for example, when the user wishes to process (delete) only the target drive files and directories.

/DIFF= 0 to 864000000000 inclusive (in 100 nanosecond intervals) Global value on Configure Form  (for single CL set only)

Time Differential Allowed
Allowable time difference in 100 nanoseconds intervals by which source and target files may differ yet still be considered identical in time. Note that 10000000 (1x10^7) 100-nanosecond intervals = 1 second and that the maximum allowed is therefore equivalent to 24 hours. This option is useful when copying files to drives on computers that do not use the same operating system as the source computer and for which the stored file times differ slightly, causing redundant file copying on successive backups to the same location. This behavior for example, has been observed in copying from a NTFS file system in NT 4.0 to a SnapServer, in which some isochronous files were found to differ by 0.0016 msec or 16 100-nanoseconds intervals.

/DTD= Y or N Main form check box  (for single CL set only)

Delete Target Directories
Y [Yes] means that unique target directories will be deleted, 
N [No] means that unique target directories will not be deleted
This parameter when specified affects only a single command line; otherwise the global check box displayed on the Main Form applies.  It can be useful to select Y to eliminate non-matching target directories but adds substantial time to the backup operation. 

/DTF= Y or N Main form check box  (for single CL set only)

Delete Target Files
Y [Yes] means that unique target files will be deleted
N [No] means that unique target files will not be deleted
This parameter when specified affects only a single command line; otherwise the global check box displayed on the Main Form applies.  It can be useful to select Y to eliminate non-matching target files but adds substantial time to the backup operation. 

/LO= Y or N Stored default value.  Can itself be overridden on Main Form by user before pressing Go.

List Only
This parameter is spelled L followed by the letter Oh (not zero).
Y [Yes] means that no file actions will be taken, and only a listing report will be generated showing what actions would be taken if this parameter were No instead.
N [No] means that all requested actions such as copy source files will be performed.
This parameter applies globally to all command line sets and can be changed on the Main Form by the user before pressing Go.
When set to Y, this simulation technique is primarily of use to the developer for debugging purposed and also for the user to satisfy himself/herself as to exactly what actions will be taken when the program is run for real.

/MTD= Y or N Main form check box (for single CL set only)

Make Target Directories
Y [Yes] means that missing target directories will be created
N [No] means that missing target directories will not be created
This parameter when specified affects only a single command line; otherwise the global check box displayed on the Main Form applies.  It is essential to leave this as Y if you intend for satisfactory mirroring to the target drive to take place, unless you are certain there are no new unmatched source directories.

/Rep= Y or N Stored default value.  Can itself be overridden  on Main Form by user before pressing Go.

Create Detailed Report Log
Y [Yes] means that a detailed report log file will be generated
N [No] means that no detailed report log file will be generated
This parameter applies globally to all command line sets and can be changed on the Main Form by the user before pressing Go.
It might slightly speed the backup operation (and will use less memory) to set this to N so no report is created, but at the sacrifice of potentially helpful information in case there are problems with the backup operation or you wish to refer later to this log to determine which backup set to use for restoring.

/QCF= Y or N Global value on Configure Form (for single CL set only)

Query user after Copy Fail
Y [Yes] means query user whether to continue or abort when a source file cannot be copied (because it is locked, etc.)
N [No] means do not query user when a source file cannot be copied, just ignore and continue.
This parameter when specified affects only a single command line set; otherwise the global check box displayed on the Configure Form applies. If the user is queried about the first copy fail for a command line set with /QCF=Y, he will not be queried again for that set. However, he will still be queried about the first copy fail in any other CL sets having the parameter /QCF=Y. He will also be queried once for the first copy fail for any sets lacking a /QCF parameter on the command line, provided the global check box "No query after file copy failure" on the Configure Form has been left unchecked.  This parameter should usually be set to N for backing up the system drive containing the Windows directories, since there will always be files that cannot be copied.  You might set this to Y when you do not expect any file copy failures, and N if you are doing a prolonged backup with multiple command line sets and you wish it to run unattended with the least likelihood of  interruption.

/QONTF= Y or N Global value on Configure Form (for single CL set only)

Query user before Overwrite Newer Target File
Y [Yes] means query user whether to overwrite a newer target file or abort
N [No] means do not query whether to overwrite a newer target file, just overwrite it and continue.
This parameter when specified affects only a single command line set; otherwise the global check box displayed on the Configure Form applies. If the user is queried about a newer target file for a command line set with /QONTF=Y, he will not be queried again for that set. However, he will be queried about a single newer target file in any other CL sets also having the parameter /QONTF=Y.   He will also be queried once before the first newer target file is overwritten for any sets lacking a /QONTF parameter on the command line, provided the global check box "No query before overwrite newer target files" on the Configure Form has been left unchecked.  It is usually Ok to have this set to Y unless you expect there to be some newer matching target files.  Set to N if you are doing a prolonged backup with multiple command line sets and you wish it to run unattended with the least likelihood of  interruption.  (Note: VGXCopy is programmed to erase the corresponding directories on the target drive where Windows NT 4.0  registry files are backed up to and where the user profile file is backed up to before source and target files are compared.  Therefore, there is no reason to expect, when backing up the Windows NT 4.0 system directories, that there will be newer target files, even though RegBack.exe was used to place files on the target.)

/TLABEL= <drive label enclosed in double quotation marks>, e.g.,
"Micron400-D"
[specified only within a single CL set] Target Label
As a safety provision (to prevent accidentally writing to the wrong drive), each command line may optionally specify the expected label for the target drive that is to be written to.  If the actual label found on the target drive does not match the label specified, the command line will not be executed.  The test for a label match is case-insensitive.

GLOBAL OPTIONS

In addition to the OPTIONAL COMMAND LINE PARAMETERS that may be specified on the program command line or in an initialization file (the latter generally affecting only the single command line set), the user may choose one of more of  the following options.  Items changed on the Configure form are stored in the registry as default values, and can sometimes be overridden by the Main Form options, or by a command line option.  Items changed on the Main Form are modified for the single current running instance only, and are not stored or recalled when VGXCopy is rerun.  

Global options that may be overridden for a single command line set are indicated with an asterisk (*).

(The listing of names of registry values and their allowed registry values are primarily for the developer's benefit--also note that the registry values are often actually stored as 1 or 0 rather than Y or N.)

Global Option Values Allowed Where User Sets Global Option Description
Copies to Maintain using numbered subdirs 0 to 5 inclusive Configure Form Copies to Maintain Number using numbered subdirs
This is the Maximum number of different copies of the VGXCopy backup sets to maintain for command line sets lacking a /CN parameter.
0 = do not add a terminal digit (copy number) to target path, so make and maintain only one.
1 - 5 = Make up to this many different backup sets over repeated backups by appending \1, \2, etc. as terminal digits (copy numbers) to the target base path, e.g.,
    Backup\C    becomes    Backup\C\1 ,    Backup\C\2 ,    Backup\C\3 etc.
Registry string value NumberOfCopiesToMaintain = "0" to "5"
User modifies this value with the Configure Form.
Copy Number * 0 to 5 inclusive Main Form

Copy number
User can modify this on the Main Form for a particular set of backups (this is not stored)
It is useful, for example, when copying to a hard drive of limited capacity or a large backup set, to force a single backup location rather than multiple successive sets as might occur if Copies to Maintain is greater than 1.  It can also be useful to circumvent the timestamps for backup sets saved in the registry, which will otherwise determine the initially suggested Copy Number to employ for backup sets lacking a /CN parameter.

Copy pause threshold
(Megabytes) *
0 to 1000 inclusive (Megabytes) Configure Form

Copy pause threshold Megabytes
The number of Megabytes copied before a pause occurs. 
This is optionally used to define a delay that is to be interposed between blocks of copied MegaBytes, in order to allow disk drives to cool for extended backup operations..
Registry string value BytesCopyPauseThreshold (expressed as bytes)
User modifies this with the Configure Form (Megabytes are entered on the form).  

Copy Pause (sec) * 0 to 120 inclusive (sec) Configure Form

Copy pause seconds
The delay to optionally interpose between blocks of copied MegaBytes, in order to allow disk drives to cool for extended backup operations.
Registry string value BytesCopyPauseMilliSec (expressed as msec)
User modifies this with the Configure Form (seconds are entered on the form).

Create Detailed Log File is the default Y or N Configure Form

Create Detailed Log File is the default
Y is the default
Creates registry string value CreateTextLog = "1" or "0"
User modifies this with the Configure Form.
It might slightly speed the backup operations (and will use less memory) to set this to N so no report is created by default, but at the sacrifice of potentially helpful information in case there are problems with the backup operation.  User can override this default on the main form or with a /Rep parameter.

Create Detailed Log File now * Y or N Main Form

Create Detailed Log File this time
User modifies this, overriding any /Rep parameter, with the Main Form . (this is not stored)
It might slightly speed the backup operation (and will use less memory) to set this to N so no report is created, but at the sacrifice of potentially helpful information in case there are problems with the backup operation.

Create Unmatched Source Directories * Y or N Main Form

Create Unmatched Source Directories on the Target Drive
Y [Yes] is default
User modifies this with the Main Form (this is not stored)
It is essential to leave this as Y if you intend for satisfactory mirroring to the target drive to take place, unless you are certain there are no new unmatched source directories.

Copy Unmatched Source Files * Y or N Main Form

Copy Unmatched Source Files
Y [Yes] is default
User modifies this with the Main Form. (this is not stored)
This should usually be Y but it might be useful to set  it to N, for example, when the user wishes to process (delete) only the target drive files and directories.

Delete unique target files is the default Y or N Configure Form

Delete unique target files
Y [Yes] is the default
Registry string value EraseUniqueTargetFilesIsDefault = "1" or "0"
User modifies this with the Configure Form.
Selecting Y can be useful to eliminate non-matching target files, in order to ensure the closest possible mirroring of the source on the target, but adds time to the backup operation. 

Delete unique target files now * Y or N Main Form

Delete unique target files this time
User modifies this with the Main Form (this is not stored)
Selecting Y can be useful to eliminate non-matching target files, in order to ensure the closest possible mirroring of the source on the target, but adds time to the backup operation. 

Delete unique target subdirectories is the default Y or N Configure Form

Delete unique target subdirectories is the default
Registry string value EraseUniqueTargetDirsIsDefault = "1" or "0"
User modifies this with the Configure Form.
Selecting Y can be useful to eliminate non-matching target directories, in order to ensure the closest possible mirroring of the source on the target, but adds substantial time to the backup operation. 

Delete unique target subdirectories now * Y or N Main Form

Delete unique target subdirectories this time
User modifies this with the Main Form (this is not stored)
Selecting Y can be useful to eliminate non-matching target directories, in order to ensure the closest possible mirroring of the source on the target, but adds substantial time to the backup operation. 

Forbidden Target root directories e.g., "c:\; d:\" Configure Form

Forbidden Target root directories
Registry string optional value ForbiddenTargetRoots listing root directories of forbidden target drives in UNC or DLC formats,
    e.g. ForbiddenTargetRoots = "\\IBM4\CDrive\, C:\"
All items must begin with \\ or Drive letter+colon and must end with backslash
Note that the presence of an entry (e.g., "c:\") prevents *any* directory, not just the root, of that drive to be the starting target directory (for example, "c:\backup")
The user modifies this with the Configure Form.

At the sacrifice of some convenience, it offers potential protection to enter this parameter for local computer drives (preferably in both DLC and UNC format) on any computer that you have installed VGXCopy on.  By local computer, I mean the computer on which you are invoking VGXCopy.exe to run.  Note that if you specify this parameter for a drive on your local computer,  you are effectively preventing copying from an external networked computer or external drive to the local computer's drive you specify using VgXCopy running on the local computer. To stay within the VGXCopy safety guidelines implied by this parameter, you should where possible set up and operate VGXCopy to copy from a local computer to an external computer or external drive, and not attempt to copy from an external computer to a local computer drive.  When you wish to restore files to a computer, use VGXCopy on the computer containing the desired files to restore.  However, if the desired restore files are contained in an external drive that does not run as a freestanding computer on which you can install VGXCopy, you will need to at least temporarily defeat the Forbidden Target root directories parameter on the local computer so that you may copy to the desired local computer drive from the external drive.

List directories walked in detailed report Y or N Configure Form List directories walked  in detailed report
Registry string value ListDirectoriesWalked = "1" or "0"
User modifies this with the Configure Form.
If Y is selected, the detailed report log will include a list of directories walked (source and target).  This will make the report longer but will help to reassure the user as to what actions the program has actually taken.  (Y is the program default)
If N is selected, the detailed report log will not include a list of directories walked.
List matching files in detailed report Y or N Configure Form

List matching files in detailed report
Registry string value ListMatchingFiles = "1" or "0"
User modifies this with the Configure Form.
If this option is selected, the time discrepancy for files that have non-identical times but still within the allowable tolerance will be reported in the detailed report.  This could be useful in selecting a suitable value for the Time Difference Allowed for Identical Files option or the /DIFF parameter.

List Needed Actions Only * Y or N Main Form

List Needed Actions Only
When selected, copy, delete, and other file and directory actions are listed but not actually performed
User modifies this with the Main Form (this is not stored).
When set to Y, this simulation technique is primarily of use to the developer for debugging purposed and also for the user to satisfy himself/herself as to exactly what actions will be taken when the program is run for real.

Directory for Log File  e.g., "D:\Temp\" Configure Form

Log File Directory
Optional  Registry string value TextLogDir, example "C:\Program Files\VGXCopy"
User modifies this with the Configure Form.
VGXCopy places the log file (if any) in each target dir for the command set, but it will also place the report in the optional directory you specify through this parameter.  If no optional directory is specified, it is placed in the system temp directory as well as in the target directories.

Make corresponding target directories * Y or N Main Form

Make corresponding target directories
Target directories are created as needed to match the source directory structure
User modifies this with the Main Form (this is not stored)
It is essential to leave this as Y if you intend for satisfactory mirroring to the target drive to take place, unless you are certain there are no new unmatched source directories.

No query user after Source File Copy Failure * Y or N Configure Form

No query user after Source File Copy Failure
Registry string value NoQueryAfterCopyFail = "0" or "1"
User modifies this with the Configure Form.
Note that the value 0 ("N" here) means to query user on copy fail, the same meaning as command line parameter /QCF=Y.
This should usually be set to Y for backing up the Windows directory and drive, since there will always be files that cannot be copied.  You might set this to N (query user) when you do not expect any file copy failures, and Y if you are doing a prolonged backup with multiple command line sets and you wish it to run unattended with the least likelihood of  interruption.

No query user before Overwrite of newer target file * Y or N Configure Form

No query user before Overwrite of newer target file(s)
Registry string value NoQueryBeforeOverwriteNewerTargetFiles = "1" or "0"
User modifies this with the Configure Form.
Note that the value 0 ("N" here) mean to query user before overwriting newer target file, the same meaning as parameter /QONTF=Y.  It is usually Ok to have this set to N (query user) unless you expect there to be some newer matching target files.  Set to Y if you are doing a prolonged backup with multiple command line sets and you wish it to run unattended with the least likelihood of  interruption.  (Note: VGXCopy is programmed to erase the corresponding directories on the target drive where registry files are backed up to and where the user profile file is backed up to before source files are compared.  Therefore, there is no reason to expect, when backing up the Windows system directories, that there will be newer target files, even though RegBack.exe was used to place files on the target.)

RegBack.EXE file specification e.g. "C:\RegBack.EXE" Configure Form

RegBack.EXE file specification
This file is optional and is used to back up registry etc. in Windows NT 4.0.  This parameter is obsolete in more recent versions of Windows.
Registry string optional value FQFileSpecRegback
User modifies this with the Configure Form.

Time Difference Allowed for Identical Files * 0 to 86400000  inclusive (entered on the form in 1 millisecond intervals) Configure Form

Time Difference Allowed for Identical Files:
This is the maximal amount of time by which the source and target files being compared may differ and still be considered Isochronous (having identical times) with respect to Last Modification Time. Unlike when specifying this parameter on the command line (where it is given as multiples of 100 nanosecond]), in the Configure Form the difference is entered as milliseconds (i.e., units each 10^4 times as long as a 100-nanosecond block). This value determines whether a source file that almost matches the time of a target file will be copied.  This option is useful when copying files to drives on computers that do not use the same operating system as the source computer and for which the stored file times differ slightly, causing redundant file copying on successive backups to the same location.  This behavior for example, has been observed in copying from a NTFS file system in NT 4.0 to a SnapServer, in which some isochronous files were found to differ by 0.0016 milliseconds or 16 100-nanoseconds intervals..
Registry string value TimeDiffIdentical = "0" to "864000000000" (i.e., up to 24 hours expressed as number of 100 nsec blocks.)
User modifies this with the Configure Form (User enters milliseconds).

COPYRIGHT AND REDISTRIBUTION

VGXCopy is copyrighted by Michael McGoodwin 1999-2004.  The user is welcome to use VGXCopy without cost but may not charge to redistribute it.

INSTALLATION

Obtain the file vgxcinst.exe from the mcgoodwin.net website.  Run this file to extract the installation files.  Uninstall any former version of VGXCopy first.  Run setup.exe to install the program to the directory of your choice.  After installing, you may run VGXCopy using command line parameters, or otherwise you will need to set up one or more initialization files that you may choose from when you start the program.  

FILES REQUIRED

(List does not include MS VB runtime or setup files)

readme_vgxcopy.html This HTML file
RegBack.EXE Needed if you wish to back up the locked system files in Windows NT 4.0, such as the registry and user profile.
This file is found in the NT 4.0 resource kit, and is not provided with this distribution. Not applicable to Windows XP.
VGRegistry.DLL For performing Windows Registry actions
VGXCopy.EXE The executable application file
VGXCopy_xxx.INI Configuration file for batch command line processing (Optional, see above)

REVISIONS HISTORY

This information is of interest primarily to the developer, but you may find a problem that has been fixed described in the latest version..

DATE VERSION COMMENTS

3/26/99

1.1

Initial working version
Hangs long time on SUBST

5/22/99

1.3

Various tweaks

10/13/00

2.0

Can now utilize VGXCopy_xxx.INI file to specify batch xcopy operations

10/15/00

2.1

Revised to not use xcopy.exe, now uses recursive calls and API approach

11/17/00

3.0

Completed overhaul with many new features.

11/27/00 3.1 Prompts user for an INI file if no VGXCopy.INI found in the Application dir and no command line parameters provided.
Added ListDirectoriesWalked registry value (set on Configure form)
Fixed DefineSUBSTDrive bug in handling DLC vs. UNC root dir as target starting dir.
11/28/00 3.2 Adjusted how INI file is prompted for and improved message boxes
12/2/00 3.3 Report Log now copied to each target directory in addition to optional user-specified directory (or temp directory).
2/10/04 4.0 Updated for Windows XP Professional.
Added skipping of x:\System Volume Information and adjusted x:\Recycler and x:\Recycled.
Modified version testing extensively to allow for all version of Windows (in VGGetWindowsVersion)
Note: VGXCopy cannot backup the system drive fully in Windows XP, does not call RegBack.exe, use Automated System Recovery or other technique.
2/16/04 4.1 Added provision to do Single File Copy in command line syntax.
11/27/04 4.4 Fixed bug regarding use of double quotes in source or target file or directory specification.  
Other minor tweaks.
4/9/05 4.5 Fixed minor bug regarding checking drive label when UNC format names a share name with $ in it. 
Clarified intent and handling of Forbidden Target root directories regarding copying from an external computer or external drive to a local computer.
4/20/05 4.5 Fixed problem with setup program.
1/1/2008 4.5 Clarifications added to manual.
2/2/2008 4.6 Fixed bug in reporting of file bytes copied for large files > 2 GB
8/8/2009 4.7 Fixed handling of Tab chars in otherwise blank non-comment lines in .ini files