Jump to content

wraithdu
 Share

Recommended Posts

The project grew out of my _LargeFileCopy UDF. It is an XCOPY replacement that improves in a few areas that were important to me. First, file verification can be done via bit-by-bit comparison, file hash, or simple size comparison. Second, it supports copying NTFS file/directory compression, encryption, and ACLs. It also has an optional simple progress display. All source files are in the archive. You can ignore the compilation warnings if you use Obfuscator.

This is a commandline utility, and provides help as such. All you need is 'a3copy /?' and you should be good to go. Enjoy!

Update: 10/8/12

- Some fixes in _LargeFileCopy (see LFC thread)

- Use DllCall versions of FindFirst/NextFile

Update: 10/4/12

- Added ability to specify multiple sources to be consolidated into the destination

- Added flag to flatten the output, ie during a directory copy, all files are copied to the top level of the destination

- Added check for cyclic copy

- Built with new and improved _LargeFileCopy, including code cleanup and many optimizations

Update: 9/22/10

- Added check for destination same as source

Update: 9/20/10

- Added --version switch

- Changes to _LargeFileCopy UDF, updated hashing functions

- Updated user input function

Update: 8/26/10

- Added Aliases: custom INI defined long options

- Added return codes, useful for scripting

- Fix for verification of 0 byte files (fix is in _LargeFileCopy.au3)

Update: 8/22/10

- Added support for EFS encryption

- Small bug fixes and code cleanup

Help:

A3COPY 1.0.2.3
Copies file and directory trees.

A3COPY source [source [source] ...] destination [options]

  source    Specifies the file(s) to copy.
  destination    Specifies the location and/or name of new files.
  /C        Copy file/directory compression state (NTFS only).
  /E        Copy also empty directories.
  /F        Flush file buffer after each copy.
  /G        Show copy progress of current file.
  /H        Copy hidden or system files.
  /J        Copy using unbuffered I/O.
  /K        Copy file/directory attributes.
  /L        Flatten the output into one destination directory.
  /N        Copy file/directory encryption state (NTFS only).
  /O        Copy file/directory ownership and ACL information (NTFS only).
            Requires admin rights.
  /P        Print full paths of source and destination.
  /Q        Don't print file names.
  /R        Allow operations on read-only files/directories.
  /S        Recurse into subdirectories.
  /T        Set destination filetimes same as source.
  NOTE:        Only one verify method will be used. The final option flag will take precedence.
  /V or /V1    Verify the integrity of the copied files using a bit by bit comparison.
  /V2        Verify the integrity of the copied files using a MD5 hash.
  /V3        Verify the integrity of the copied files using file size only.
            Not valid for unbuffered copy operations.
  /W        Apply wildcard to folder search when using /S.
  /Y        Overwrite destination without prompt.
  /Z        Never overwrite destination, suppress prompt.
  /?        This usage information.

Long options:

  --filespec    Show source/destination filespec help.
  --copy    Same as /EHRSTVY.
  --backup    Same as /EHKRSTVY.
  --clone    Same as /CEHKNORSTVY.
  --version    Print version information.
  --help    Same as /?.

Aliases:

Aliases may be set up in 'a3copy.ini' in the same folder as A3COPY.
The aliases are invoked in the same way as the built-in long options.

  Example:

  a3copy src dest --mycopy

  [aliases]
  mycopy=EJSV
  cpyroot=CKNOV

Return codes:

  0: no errors
  1: source not found
  2: invalid file name / wildcard pattern
  3: one or more errors copying files

Filespec help:

A3COPY 1.0.2.3
Copies file and directory trees.

Filespec for source/destination:

If source is a single file, then destination may be a file or directory.
If destination ends in a '' then a directory is assumed.
If not, then a single destination file is assumed unless a direcotry
of the same name already exists.
If destination is a directory, then the source file name will be used
for the destination file.

If source is a directory or wildcard filespec, then destination
is assumed to be a directory.
Wildcard filespec follows standard Windows usage of '*' and '?'.

When the source is a directory, if filespec does not include a wildcard
then it is assumed the directory is to be copied, and the top level
directory attributes will be duplicated if the appropriate switches are
set (/C, /K, /N, or /O).

If the source filespec includes a wildcard, then it is assumed directory
contents are to be copied, and the top level directory attributes will not
be duplicated.

a3copy.zip

Edited by wraithdu
Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...
  • 2 years later...
  • 1 year later...

Hi wraithdu,

I know that the last 15 month there was no post here but on the other hand the UDF is nearly perfect :-). So no need for a change...

But I have a question. I wan't to copy some special windows folders like "Documents and Settings". There have some security settings which make them unique. When I try to copy them with a3copy I get not a 1on1 copy. It takes the inherited security settings and also doesn't create the user 'everyone'.

I know there is no flag for clearing the DACL. Can you point me in the right direction on how to copy those files? Possibly with the help of using only _LargeFileCopy?

Many thanks in advance

Sundance

PS: I also thought of using some kind of raw block level copy for copying them to another drive. Just like an 'image' of the whole file. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...