@echo off
	goto begin

::-----------------------------------------------------------------------------
:: File Name: "xcp.bat" - eXtended CoPy BATch for Windows7 HP 64bit(x64)
:: and the related Backup/Copy Softwares
::
:: Copyright: Public Domain Software (NOT TO BE SHAREWARE OR FREEWARE)
::
:: Version (??: secondary series; can be revised by somebodies)
:: *.*?? by ***	May be revised for something
::
:: Version (ps: primary series; reserved for S. )
:: 1.1ps by S.  Command path selection etc. modified.
:: 1.0ps by S.	Created for Robocopy, RichCopy, FastCopy, Fire File Copy etc.
::
:: Related Softwares (required):
::
:: - Robocopy in Windows7 Home Premium, 64-bit Version 6.1 (Build 7600)
:: - RichCopy Version: 4,0,217,0 (freeware, 32/64bit)
::   http://technet.microsoft.com/ja-jp/magazine/2009.04.utilityspotlight.aspx
:: - FastCopy(64bit) ver2.03 (Admin) (freeware, 64bit)
::   http://ipmsg.org/tools/fastcopy.html
:: - Fire File Copy  Version : 4.9.1.0(unicode) (freeware, 32bit)
::   http://www.k3.dion.ne.jp/~kitt/pc/sw/ffc/
:: - FileVisor6 ver6.4.7.1 (shareware, 32bit)
::   http://www.lightship.co.jp/FileVisor6/
:: - WinFM2008 V2.13 (Build 419) (x64 - unicode version) (shareware, 64bit)
::   http://homepage3.nifty.com/annsHome/WinFM2008.htm
:: - Far Manager v2.0 build 1666 x64 (2010-09-10) (freeware, 64bit)
::   http://www.farmanager.com/download.php?p=64
::
:: Notes
:: - Attribute characters of Windows7 Explorer
::   (that should be used for Filers, Archivers and Backup/Copy Softwares)
::	Attr:R (READONLY)
::	Attr:H (HIDDEN)
::	Attr:S (SYSTEM)
::	Attr:D (DIRECTORY)
::	Attr:A (ARCHIVE)
::	Attr:N (NORMAL)
::	Attr:T (TEMPORARY)
::	Attr:P (SPARSE_FILE)
::	Attr:L (REPARSE_POINT)
::	Attr:C (COMPRESSED)
::	Attr:O (OFFLINE)
::	Attr:I (NOT_CONTENT_INDEXED)
::	Attr:E (ENCRYPTED)
::	Attr:V (VIRTUAL)
::
:: - Attribute characters (MJL extension)
::   (expected to be used for Filers, Archivers and Backup/Copy Softwares)
::	Attr:M (Volume Mount Points)
::	Attr:J (Junction Points)
::	Attr:L (Symbolic Links only)
::-----------------------------------------------------------------------------

:begin
	if .%1==.-frc (
		set _CP_SA1=%1
		shift /1
	)
	if not exist "%~f3" goto usage
	set _CP_DST=%~f3
	set _CP_TFN=
	if .%1==.-rob goto setup%1
	if .%1==.-ric goto setup%1
	if .%1==.-fc2 goto setup%1
	if .%1==.-ffc goto setup%1
	if .%1==.-fv6 goto setup%1
	if .%1==.-wfm goto setup%1
	if .%1==.-far goto setup%1
	goto usage

:---

:setup-rob
	set _CP_CMD=%SystemRoot%\System32\Robocopy
	set _CP_TRG=
	set _CP_PRE=
	set _CP_OPR=	/E /B /DCOPY:T /COPYALL /PURGE /SL /MT:1 /XF hiberfil.sys pagefile.sys /XD "%~n0.$?$" /XO
	set _CP_OMR=%_CP_OPR%
	set _CP_OCP=	/E /B /DCOPY:T /COPYALL        /SL /MT:1 /XF hiberfil.sys pagefile.sys /XD "%~n0.$?$"
	set _CP_DEF= /IS /IT /R:0 /W:1 /TBD /X /V /TS /FP /BYTES /ETA /LOG+:"%~dp0x%1%2.log" /TEE
	goto setup

:setup-ric
	       if exist      "%ProgramFiles%\Microsoft Rich Tools\RichCopy 4.0\" (
		set "_CP_CMD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\Microsoft Rich Tools\RichCopy 4.0\" (
		set "_CP_CMD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CMD=%SystemDrive%\usr"
	)
	set _CP_CMD=%_CP_CMD%\Microsoft Rich Tools\RichCopy 4.0\RichCopy
	if exist "%ProgramFiles(x86)%\" set _CP_CMD=%_CP_CMD%64
	set _CP_TRG=
	set _CP_PRE=
:BUG: RichCopy command line parser not recognize TAB character
:BUG	set _CP_OPR=	/CDSD /FSD /FAD       /CSA /CSD /CSG /CSO /CSS /PRP /W /NC /SZ /P /FEF "hiberfil.sys;pagefile.sys" /FED "%~n0.$?$"
	set _CP_OPR=    /CDSD /FSD /FAD       /CSA /CSD /CSG /CSO /CSS /PRP /W /NC /SZ /P /FEF "hiberfil.sys;pagefile.sys" /FED "%~n0.$?$"
	set _CP_OMR=%_CP_OPR%
:BUG: RichCopy command line parser not recognize TAB character
:BUG	set _CP_OCP=	/CDSD /FSD /FAD /ALWS /CSA /CSD /CSG /CSO /CSS /PRP /W /NC /SZ    /FEF "hiberfil.sys;pagefile.sys" /FED "%~n0.$?$"
	set _CP_OCP=    /CDSD /FSD /FAD /ALWS /CSA /CSD /CSG /CSO /CSS /PRP /W /NC /SZ    /FEF "hiberfil.sys;pagefile.sys" /FED "%~n0.$?$"
	set _CP_DEF= /TD 1 /PP 5 /R 1 /RI 1 /QA /QP "%~dp0x%1%2.log" /UE /US /UD /UC /UPF /UPC /UPS /UFC /UCS /USC /USS /USD /UPR /UET
	goto setup

:setup-fc2
	       if exist      "%ProgramFiles%\FastCopy\" (
		set "_CP_CMD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\FastCopy\" (
		set "_CP_CMD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CMD=%SystemDrive%\usr"
	)
	set _CP_CMD=%_CP_CMD%\FastCopy\FastCopy
	set _CP_TRG=/to=
	set _CP_PRE=
	set _CP_OPR=	/cmd=sync       /auto_close /open_window /estimate /no_confirm_del /error_stop /bufsize=32 /log=FALSE /filelog="%~dp0x%1%2.log" /utf8 /skip_empty_dir=FALSE /force_start=FALSE /disk_mode=auto /speed=full /exclude="hiberfil.sys;pagefile.sys;%~n0.$?$\"
	set _CP_OMR=%_CP_OPR%
	set _CP_OCP=	/cmd=force_copy /auto_close /open_window /estimate /no_confirm_del /error_stop /bufsize=32 /log=FALSE /filelog="%~dp0x%1%2.log" /utf8 /skip_empty_dir=FALSE /force_start=FALSE /disk_mode=auto /speed=full /exclude="hiberfil.sys;pagefile.sys;%~n0.$?$\"
	set _CP_DEF= /wipe_del=FALSE /acl /stream /reparse /verify=FALSE /linkdest /recreate /postproc=FALSE
	goto setup

:setup-ffc
	       if exist      "%ProgramFiles%\FFC\" (
		set "_CP_CMD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\FFC\" (
		set "_CP_CMD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CMD=%SystemDrive%\usr"
	)
	set _CP_CMD=%_CP_CMD%\FFC\FFC
	set _CP_TRG=/to:
	set _CP_PRE= ;hiberfil.sys ;pagefile.sys ;"\%~n0.$?$"
	set _CP_OPR=	/sync /a /ed /ft:15 /lg:127 /md /ov:b1i1a2
	set _CP_OMR=%_CP_OPR%
	set _CP_OCP=	/copy /a /ed /ft:15 /lg:127 /md /ov:a1
	set _CP_DEF= /sr /st /tp:high /-vf /wd /ys
	goto setup

:setup-fv6
	       if exist      "%ProgramFiles%\LightShip\FileVisor6\" (
		set "_CP_CMD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\LightShip\FileVisor6\" (
		set "_CP_CMD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CMD=%SystemDrive%\usr"
	)
	       if exist      "%ProgramFiles%\Common Files\LightShip\" (
		set "_CP_CWD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\Common Files\LightShip\" (
		set "_CP_CWD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CWD=%SystemDrive%\usr"
	)
	set _CP_CMD=%_CP_CMD%\LightShip\FileVisor6\FV6
	set _CP_CWD=%_CP_CWD%\Common Files\LightShip
	goto setup

:setup-wfm
	       if exist      "%ProgramFiles%\WinFM2008\" (
		set "_CP_CMD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\WinFM2008\" (
		set "_CP_CMD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CMD=%SystemDrive%\usr"
	)
	if exist "%ProgramFiles(x86)%\" (
		set "_CP_CMD=%_CP_CMD%\WinFM2008\WinFMx64"
	) else (
		set "_CP_CMD=%_CP_CMD%\WinFM2008\WinFM2k"
	)
	goto setup

:setup-far
	       if exist      "%ProgramFiles%\Far2\" (
		set "_CP_CMD=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\Far2\" (
		set "_CP_CMD=%ProgramFiles(x86)%"
	) else (
		set "_CP_CMD=%SystemDrive%\usr"
	)
	set _CP_CMD=%_CP_CMD%\Far2\Far
	goto setup

:setup
	set _CP_CMD="%_CP_CMD%"
	set _CP_OMD=%_CP_OCP%
	set _CP_ATT=
	set _CP_SRC=
	set _CP_ARG= %4 %5 %6 %7 %8 %9
	if .%2==.-p  goto purge%1
	if not exist "%~f4" goto usage
	set _CP_SRC=%~f4
	set _CP_ARG= %5 %6 %7 %8 %9
	if .%2==.-m  goto mirror%1
	if .%2==.-c  goto copy%1
	if .%2==.-r  goto resA%1
	if .%2==.-sd goto setA4D%1
	if .%2==.-sf goto setA4F%1
	goto usage

:---

:usage
	echo Usage:
:	echo  %~n0 -rob/-ric/fc2/ffc/fv6/wfm/far -p DST [ARG..]
	echo  %~n0 -rob/-ric/fc2/ffc -p DST [ARG..]
:	echo  %~n0 -rob/-ric/fc2/ffc/fv6/wfm/far -m/-c/-r/-sd/-sf DST SRC [ARG..]
	echo  %~n0 -rob/-ric/fc2/ffc -m/-c/-r/-sd/-sf DST SRC [ARG..]
	echo -rob: Operation with Robocopy
	echo -ric: Operation with RichCopy
	echo -fc2: Operation with FastCopy
	echo -ffc: Operation with Fire File Copy
:	echo -fv6: Operation with FileVisor6
:	echo -wfm: Operation with WinFM2008
:	echo -far: Operation with Far Manager
	echo -p:   Purge DIR./FILE
	echo -m:   Mirror DIR./FILE
	echo -c:   Copy DIR./FILE
	echo -r:   Reset Attr. for DIR./FILE
	echo -sd:  Set Attr. for DIR.
	echo -sf:  Set Attr. for FILE
	echo DST:  Destination DIR.
	echo SRC:  Source DIR.
	echo ARG:  Optional Argument
	echo.
	echo e.g. %~n0 -rob -p \dstdir
	echo e.g. %~n0 -fc2 -c \dstdir \srcdir
	goto exit

:---

:purge-rob
	echo Purge DIR./FILE with Robocopy -------------------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo.
	echo - Entities of Reparse Points will be lost for DIR. (not be lost for FILE)
	echo -- Entities of Volume Mount Points will be lost for DIR.
	echo -- Entities of Junction Points will be lost for DIR.
	echo -- Entities of Symbolic Links will be lost for DIR. (not be lost for FILE)
	goto purge

:purge-ric
	echo Purge DIR./FILE with RichCopy -------------------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo.
	echo - Entities of Reparse Points will be lost for DIR. (not be lost for FILE)
	echo -- Entities of Volume Mount Points will be lost for DIR.
	echo -- Entities of Junction Points will be lost for DIR.
	echo -- Entities of Symbolic Links will be lost for DIR. (not be lost for FILE)
	echo - Attr:L (REPARSE_POINT) entries not deleted for DIR. (deleted for FILE)
	echo -- Volume Mount Points themselves not deleted for DIR.
	echo -- Junction Points themselves not deleted for DIR.
	echo -- Symbolic Links themselves not deleted for DIR. (deleted for FILE)
	echo - DIR. and Attr:R (READONLY) entries for DIR./FILE not deleted
	goto purge

:purge-fc2
	echo Purge DIR./FILE with FastCopy -------------------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo.
	echo - Attr:L (REPARSE_POINT) entries with Attr:R (READONLY) not deleted for DIR.
	echo -- Volume Mount Points themselves with Attr:R (READONLY) not deleted for DIR.
	echo -- Junction Points themselves with Attr:R (READONLY) not deleted for DIR.
	echo -- Symbolic Links themselves with Attr:R (READONLY) not deleted for DIR.
	goto purge

:purge-ffc
	echo Purge DIR./FILE with Fire File Copy -------------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo.
	echo - No DIR./FILE deleted
	goto purge

:purge-fv6
	echo Purge DIR./FILE with FileVisor6 (manual operation) ----------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo.
	goto purge

:purge-wfm
	echo Purge DIR./FILE with WinFM2008 (manual operation) -----------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo.
	goto purge

:purge-far
	echo Purge DIR./FILE with Far Manager (manual operation) ---------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo.
	goto purge

:purge
	echo - DIR./FILE in Reparse Points or themselves not selectable in deleting
	echo.
	echo WARNINGS:
	echo - DIR./FILE in DST (Destination) may be deleted!!
	echo - DIR./FILE in "Volume Mount Points" under DST may be deleted!!
	echo - DIR./FILE in "Junction Points" under DST may be deleted!!
	echo - DIR./FILE in "Symbolic Links" under DST may be deleted!!
	if not .%_CP_SA1%==.-frc (
		choice /M "Did you understand the above WARNINGS"
		if errorlevel 2 goto exit
		choice /M "Do you cancel the operation"
		if not errorlevel 2 goto exit
	)
	set _CP_OMD=%_CP_OPR%
	goto common

:---

:mirror-rob
	echo Mirror DIR./FILE with Robocopy ------------------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for Volume Mount Points and Symbolic Links of DIR.
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) may not be copied for small FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for FILE (copied for DIR.)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE (icacls: "S:AINO_ACCESS_CONTROL")
	echo - ADS not copied for Junction Points of DIR. (copied for FILE)
	echo.
	echo - Entities of Reparse Points will be lost for DIR. (not be lost for FILE)
	echo -- Entities of Volume Mount Points will be lost for DIR.
	echo -- Entities of Junction Points will be lost for DIR.
	echo -- Entities of Symbolic Links will be lost for DIR. (not be lost for FILE)
	goto mirror

:mirror-ric
	echo Mirror DIR./FILE with RichCopy ------------------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR./FILE
	echo.
	echo - Entities of Reparse Points will be lost for DIR. (not be lost for FILE)
	echo -- Entities of Volume Mount Points will be lost for DIR.
	echo -- Entities of Junction Points will be lost for DIR.
	echo -- Entities of Symbolic Links will be lost for DIR. (not be lost for FILE)
	echo - Attr:L (REPARSE_POINT) entries not deleted for DIR. (deleted for FILE)
	echo -- Volume Mount Points themselves not deleted for DIR.
	echo -- Junction Points themselves not deleted for DIR.
	echo -- Symbolic Links themselves not deleted for DIR. (deleted for FILE)
	echo - DIR. and Attr:R (READONLY) entries for DIR./FILE not deleted
	goto mirror

:mirror-fc2
	echo Mirror DIR./FILE with FastCopy ------------------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Attr:A (ARCHIVE) not copied, be set forcibly for FILE (copied for DIR.)
	echo - Attr:N (NORMAL) not copied, be reset forcibly for FILE
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS not copied for DIR. except Junction Points and FILE of big Sparse File
	echo.
	echo - Attr:L (REPARSE_POINT) entries with Attr:R (READONLY) not deleted for DIR.
	echo -- Volume Mount Points themselves with Attr:R (READONLY) not deleted for DIR.
	echo -- Junction Points themselves with Attr:R (READONLY) not deleted for DIR.
	echo -- Symbolic Links themselves with Attr:R (READONLY) not deleted for DIR.
	goto mirror

:mirror-ffc
	echo Mirror DIR./FILE with Fire File Copy ------------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for any Reparse Points of DIR. (copied for FILE)
	echo - Last Write Time not copied for any Reparse Points of DIR. (copied for FILE)
	echo - Attr:T (TEMPORARY) not copied for FILE
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:O (OFFLINE) not copied for DIR./FILE
	echo - Attr:I (NOT_CONTENT_INDEXED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Symbolic Links themselves not copied for DIR.(GUI mode)/FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS not copied for DIR. except Junction Points (copied for FILE)
	echo.
	echo - No DIR./FILE deleted
:	goto mirror
	goto abort

:mirror-fv6
:mirror-wfm
:mirror-far
	echo Operation unsupported
	goto abort

:mirror
	echo - DIR./FILE in Reparse Points or themselves not selectable in deleting
	echo.
	echo WARNINGS:
	echo - DIR./FILE in DST (Destination) may be deleted!!
	echo - DIR./FILE in "Volume Mount Points" under DST may be deleted!!
	echo - DIR./FILE in "Junction Points" under DST may be deleted!!
	echo - DIR./FILE in "Symbolic Links" under DST may be deleted!!
	if not .%_CP_SA1%==.-frc (
		choice /M "Did you understand the above WARNINGS"
		if errorlevel 2 goto exit
		choice /M "Do you cancel the operation"
		if not errorlevel 2 goto exit
	)
	set _CP_OMD=%_CP_OMR%
	goto common

:---

:copy-rob
	echo Copy DIR./FILE with Robocopy --------------------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for Volume Mount Points and Symbolic Links of DIR.
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) may not be copied for small FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for FILE (copied for DIR.)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE (icacls: "S:AINO_ACCESS_CONTROL")
	echo - ADS not copied for Junction Points of DIR. (copied for FILE)
	goto copy

:copy-ric
	echo Copy DIR./FILE with RichCopy --------------------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR./FILE
	goto copy

:copy-fc2
	echo Copy DIR./FILE with FastCopy --------------------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Attr:A (ARCHIVE) not copied, be set forcibly for FILE (copied for DIR.)
	echo - Attr:N (NORMAL) not copied, be reset forcibly for FILE
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS not copied for DIR. except Junction Points and FILE of big Sparse File
	goto copy

:copy-ffc
	echo Copy DIR./FILE with Fire File Copy --------------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for any Reparse Points of DIR. (copied for FILE)
	echo - Last Write Time not copied for any Reparse Points of DIR. (copied for FILE)
	echo - Attr:T (TEMPORARY) not copied for FILE
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:O (OFFLINE) not copied for DIR./FILE
	echo - Attr:I (NOT_CONTENT_INDEXED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Symbolic Links themselves not copied for DIR.(GUI mode)/FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS not copied for DIR. except Junction Points (copied for FILE)
	goto copy

:copy-fv6
	echo Copy DIR./FILE with FileVisor6 (manual operation) -----------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Creation Time not copied for FILE (copied for DIR.)
	echo - Attr:A (ARCHIVE) not copied, be set forcibly for FILE (copied for DIR.)
	echo - Attr:N (NORMAL) not copied, be reset forcibly for FILE
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:O (OFFLINE) not copied for FILE (copied for DIR.)
	echo - Attr:I (NOT_CONTENT_INDEXED) not copied for FILE (copied for DIR.)
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR. (copied for FILE)

	if exist "%_CP_DST%" echo DST: "%_CP_DST%"
	if exist "%_CP_SRC%" echo SRC: "%_CP_SRC%"
	if not .%_CP_SA1%==.-frc pause
	echo Operating...
	pushd .
	%_CP_CWD:~,2%
	pushd .
	cd "%_CP_CWD%"
:BUG: FileVisor6 command line parser not recognize "/CONT" option (for Windows7)
:BUG: FileVisor6 command line parser not recognize "/FORCE folder" option
:BUG: FileVisor6 command line parser not recognize redirect
:BUG	echo	%_CP_CMD% /FORCE "%_CP_SRC%"
:BUG		%_CP_CMD% /FORCE "%_CP_SRC%" > nul
	echo	%_CP_CMD% "%_CP_SRC%"
		%_CP_CMD% "%_CP_SRC%"
	popd
	popd
	echo Done: %~n0
	goto exit

:copy-wfm
	echo Copy DIR./FILE with WinFM2008 (manual operation) ------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Creation Time not copied for FILE with Attr:R (READONLY) (copied for DIR.)
	echo - Attr:A (ARCHIVE) not copied, be set forcibly for FILE except Symbolic Links
	echo - Attr:N (NORMAL) not copied, be reset forcibly for FILE except Symbolic Links
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR. (copied for FILE)

	if exist "%_CP_DST%" echo DST: "%_CP_DST%"
	if exist "%_CP_SRC%" echo SRC: "%_CP_SRC%"
	if not .%_CP_SA1%==.-frc pause
	echo Operating...
	echo	%_CP_CMD% "%_CP_SRC%"
		%_CP_CMD% "%_CP_SRC%" > nul
	echo Done: %~n0
	goto exit

:copy-far
	echo Copy DIR./FILE with Far Manager (manual operation) ----------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Creation Time not copied for DIR./FILE
	echo - Last Write Time not copied for DIR. and Symbolic Links of FILE
	echo - Attr:A (ARCHIVE) not copied, be set forcibly for FILE (copied for DIR.)
	echo - Attr:N (NORMAL) not copied, be reset forcibly for FILE
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for FILE (copied for DIR.)
	echo - Attr:O (OFFLINE) not copied for FILE (copied for DIR.)
	echo - Attr:I (NOT_CONTENT_INDEXED) not copied for FILE (copied for DIR.)
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR. (and DIR. recurs)
	echo -- Symbolic Links themselves with Attr:R (READONLY) not copied for FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS not copied for Symbolic Links of FILE with Attr:R (READONLY)

	if exist "%_CP_DST%" echo DST: "%_CP_DST%"
	if exist "%_CP_SRC%" echo SRC: "%_CP_SRC%"
	if not .%_CP_SA1%==.-frc pause
	echo Operating...
	echo	echo N^|start /MAX /WAIT cmd /C "chcp 437 & %_CP_CMD% "%_CP_DST%" "%_CP_SRC%""
		echo N |start /MAX /WAIT cmd /C "chcp 437 & %_CP_CMD% "%_CP_DST%" "%_CP_SRC%"" > nul
	echo Done: %~n0
	goto exit

:copy
:	set _CP_OMD=%_CP_OCP%
	goto common

:---

:resA-rob
	echo Reset Attr. for DIR./FILE with Robocopy ---------------------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for Volume Mount Points and Symbolic Links of DIR.
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) may not be copied for small FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for FILE (copied for DIR.)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE (icacls: "S:AINO_ACCESS_CONTROL")
	echo - ADS not copied for Junction Points of DIR. (copied for FILE)
	echo.
	echo - Attr. setting/resetting functions not supported for Attr:T/P/O etc.
:: Attr:N means NOT_CONTENT_INDEXED (not NORMAL) for Robocopy
	set _CP_ATT= /A-:RASHCNET
	goto resA

:resA-ric
	echo Reset Attr. for DIR./FILE with RichCopy ---------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR./FILE
	echo.
	echo - Attr:A (ARCHIVE) may not be reset for FILE (reset for DIR.)
	echo - Attr:H (HIDDEN) not reset with Attr:A (ARCHIVE) for FILE (reset for DIR.)
	echo - Attr:S (SYSTEM) not reset with Attr:A (ARCHIVE) for FILE (reset for DIR.)
	set _CP_ATT= -R -H -S -A -C -I -T -O -E
	goto resA

:resA-fc2
	echo Reset Attr. for DIR./FILE with FastCopy ---------------------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported
	set _CP_ATT=
:	goto resA
	goto abort

:resA-ffc
	echo Reset Attr. for DIR./FILE with Fire File Copy ---------------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported
	set _CP_ATT=
:	goto resA
	goto abort

:resA-fv6
	echo Reset Attr. for DIR./FILE with FileVisor6 (manual operation) ------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported except Attr:R/H/S/A
	set _CP_ATT=
:	goto resA
	goto abort

:resA-wfm
	echo Reset Attr. for DIR./FILE with WinFM2008 (manual operation) -------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported except Attr:R/H/S/A/C/E
	set _CP_ATT=
:	goto resA
	goto abort

:resA-far
	echo Reset Attr. for DIR./FILE with Far Manager (manual operation) -----------------
:	echo NOTICES (Problems to be revised):
	set _CP_ATT=
:	goto resA
	goto abort

:resA
	goto common

:---

:setA4D-rob
:: Attr:T (TEMPORARY) and Attr:P (SPARSE_FILE) to be masked for DIR.
:BUG: Attr. not set with Attr:T (TEMPORARY) for DIR. (set for FILE)
:BUG	echo Set Attr. for DIR. with Robocopy (without Attr:E) -----------------------------
	echo Set Attr. for DIR. with Robocopy (without Attr:ET) ----------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for Volume Mount Points and Symbolic Links of DIR.
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) may not be copied for small FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for FILE (copied for DIR.)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE (icacls: "S:AINO_ACCESS_CONTROL")
	echo - ADS not copied for Junction Points of DIR. (copied for FILE)
	echo.
	echo - Attr. setting/resetting functions not supported for Attr:T/P/O etc.
:: Attr:N means NOT_CONTENT_INDEXED (not NORMAL) for Robocopy
:BUG: Attr. not set with Attr:T (TEMPORARY) for DIR. (set for FILE)
:BUG	set _CP_ATT= /A+:RASHCNT
	set _CP_ATT= /A+:RASHCN
	goto setA4D

:setA4D-ric
:: Attr:T (TEMPORARY) and Attr:P (SPARSE_FILE) to be masked for DIR.
:BUG: Attr. not set with Attr:T (TEMPORARY) for DIR. (set for FILE)
:BUG	echo Set Attr. for DIR. with RichCopy (without Attr:E) -----------------------------
	echo Set Attr. for DIR. with RichCopy (without Attr:TE) ----------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR./FILE
:BUG: Attr. not set with Attr:T (TEMPORARY) for DIR. (set for FILE)
:BUG	set _CP_ATT= +R +H +S +A +C +I +T +O
	set _CP_ATT= +R +H +S +A +C +I +O
	goto setA4D

:setA4D-fc2
:: Attr:T (TEMPORARY) and Attr:P (SPARSE_FILE) to be masked for DIR.
	echo Set Attr. for DIR. with FastCopy (without Attr:E) -----------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported
	set _CP_ATT=
:	goto setA4D
	goto abort

:setA4D-ffc
:: Attr:T (TEMPORARY) and Attr:P (SPARSE_FILE) to be masked for DIR.
	echo Set Attr. for DIR. with Fire File Copy (without Attr:E) -----------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported
	set _CP_ATT=
:	goto setA4D
	goto abort

:setA4D-fv6
:: Attr:T (TEMPORARY) and Attr:P (SPARSE_FILE) to be masked for DIR.
	echo Set Attr. for DIR. with FileVisor6 (manual operation) -------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported except Attr:R/H/S/A
	set _CP_ATT=
:	goto setA4D
	goto abort

:setA4D-wfm
:: Attr:T (TEMPORARY) and Attr:P (SPARSE_FILE) to be masked for DIR.
	echo Set Attr. for DIR. with WinFM2008 (manual operation) --------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported except Attr:R/H/S/A/C/E
	set _CP_ATT=
:	goto setA4D
	goto abort

:setA4D-far
	echo Set Attr. for DIR. with Far Manager (manual operation) ------------------------
:	echo NOTICES (Problems to be revised):
	set _CP_ATT=
:	goto setA4D
	goto abort

:setA4D
	goto common

:---

:setA4F-rob
:BUG: Attr:C (COMPRESSED) not set with Attr:R (READONLY) for FILE (set for DIR.)
:BUG	echo Set Attr. for FILE with Robocopy (without Attr:E) -----------------------------
	echo Set Attr. for FILE with Robocopy (without Attr:RE) ----------------------------
	echo (Very Long Paths over 260 up to 32767 char. will be processed)
	echo NOTICES (Problems to be revised):
	echo - Copying not processed in order of DIR. entries (from FAT32/FAT to FAT32/FAT)
	echo - Creation Time not copied for Volume Mount Points and Symbolic Links of DIR.
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) may not be copied for small FILE
	echo - Attr:L (REPARSE_POINT) may not be copied for DIR./FILE
	echo - Attr:C (COMPRESSED) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for FILE (copied for DIR.)
	echo - ACL (Access Control Lists) may not be copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE (icacls: "S:AINO_ACCESS_CONTROL")
	echo - ADS not copied for Junction Points of DIR. (copied for FILE)
	echo.
	echo - Attr. setting/resetting functions not supported for Attr:T/P/O etc.
:: Attr:N means NOT_CONTENT_INDEXED (not NORMAL) for Robocopy
:BUG: Attr:C (COMPRESSED) not set with Attr:R (READONLY) for FILE (set for DIR.)
:BUG	set _CP_ATT= /A+:RASHCNT
	set _CP_ATT= /A-:R /A+:ASHCNT
	goto setA4F

:setA4F-ric
	echo Set Attr. for FILE with RichCopy (without Attr:E) -----------------------------
	echo NOTICES (Problems to be revised):
	echo - Very Long Paths over 247 up to 32767 char. not processed
	echo - Last Write Time not copied for Volume Mount Points of DIR. (copied for FILE)
	echo - Attr:P (SPARSE_FILE) not copied for FILE
	echo - Attr:L (REPARSE_POINT) not copied for DIR./FILE
	echo - Attr:E (ENCRYPTED) may not be copied for DIR./FILE (untested)
	echo - Attr:V (VIRTUAL) may not be copied for DIR./FILE (untested)
	echo - Hard Links themselves not copied for FILE
	echo -- Volume Mount Points themselves not copied for DIR.
	echo -- Junction Points themselves not copied for DIR.
	echo -- Symbolic Links themselves not copied for DIR./FILE
	echo - ACL (Access Control Lists) not copied for DIR./FILE
	echo -- DACL (Discretionary ACL) not copied for DIR./FILE
	echo -- Group SID (Security ID) not copied for DIR./FILE
	echo -- Owner SID (Security ID) not copied for DIR./FILE
	echo -- SACL (System ACL) not copied for DIR./FILE
	echo - ADS (Alternate Data Streams) not copied for DIR./FILE
	set _CP_ATT= +R +H +S +A +C +I +T +O
	goto setA4F

:setA4F-fc2
	echo Set Attr. for FILE with FastCopy (without Attr:E) -----------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported
	set _CP_ATT=
:	goto setA4F
	goto abort

:setA4F-ffc
	echo Set Attr. for FILE with Fire File Copy (without Attr:E) -----------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported
	set _CP_ATT=
:	goto setA4F
	goto abort

:setA4F-fv6
	echo Set Attr. for FILE with FileVisor6 (manual operation) -------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported except Attr:R/H/S/A
	set _CP_ATT=
:	goto setA4F
	goto abort

:setA4F-wfm
	echo Set Attr. for FILE with WinFM2008 (manual operation) --------------------------
	echo NOTICES (Problems to be revised):
	echo - Attr. setting/resetting functions not supported except Attr:R/H/S/A/C/E
	set _CP_ATT=
:	goto setA4F
	goto abort

:setA4F-far
	echo Set Attr. for FILE with Far Manager (manual operation) ------------------------
:	echo NOTICES (Problems to be revised):
	set _CP_ATT=
:	goto setA4F
	goto abort

:setA4F
	goto common

:---

:common
	if exist "%_CP_DST%" echo DST: "%_CP_DST%"
	if exist "%_CP_SRC%" echo SRC: "%_CP_SRC%"
	if not .%_CP_SA1%==.-frc pause
	echo Operating...
	if .%2==.-p (
		if exist "%~dpn0.$1$" (
			echo Aborted: "%~dpn0.$1$" is already exist.
			goto exit
		)
		md "%~dpn0.$1$"
		if errorlevel 1 goto abort
		set _CP_SRC=%~dpn0.$1$
	)
	if .%1==.-ffc (
		if exist "%SystemDrive%\%~n0.$0$" (
			echo Aborted: "%SystemDrive%\%~n0.$0$" is already exist.
			goto exit
		)
		md "%SystemDrive%\%~n0.$0$"
		if errorlevel 1 goto abort
		set _CP_TFN=%_CP_SRC%
:sol
		for /F "usebackq tokens=1* delims=\" %%i in (`set _CP_TFN`) do (
			if "%%j"=="" ( goto eol ) else set _CP_TFN=%%j
		)
		goto sol
:eol
		mklink /D "%SystemDrive%\%~n0.$0$\%_CP_TFN%" "%_CP_DST%"
		if errorlevel 1 goto abort
		set _CP_DST=%SystemDrive%\%~n0.$0$
	)
	set _CP_DST="%_CP_DST%"
	set _CP_SRC="%_CP_SRC%"
:	if exist %_CP_DST% echo DST: %_CP_DST%
:	if exist %_CP_SRC% echo SRC: %_CP_SRC%
	if exist "%~dp0x%1%2.log" del "%~dp0x%1%2.log"
	if exist "%~dp0x%1%2.log" goto abort
	if .%1==.-fc2 (
		echo	%_CP_CMD%%_CP_PRE%%_CP_ARG%%_CP_ATT%%_CP_OMD%%_CP_DEF% %_CP_SRC% %_CP_TRG%%_CP_DST%
			%_CP_CMD%%_CP_PRE%%_CP_ARG%%_CP_ATT%%_CP_OMD%%_CP_DEF% %_CP_SRC% %_CP_TRG%%_CP_DST% > nul
	) else (
		echo	%_CP_CMD%%_CP_PRE% %_CP_SRC% %_CP_TRG%%_CP_DST%%_CP_ARG%%_CP_ATT%%_CP_OMD%%_CP_DEF%
			%_CP_CMD%%_CP_PRE% %_CP_SRC% %_CP_TRG%%_CP_DST%%_CP_ARG%%_CP_ATT%%_CP_OMD%%_CP_DEF% > nul
	)
	echo ERRORLEVEL: %errorlevel%
:	if errorlevel 1 goto abort
	if exist "%SystemDrive%\%~n0.$0$\%_CP_TFN%\"	rd "%SystemDrive%\%~n0.$0$\%_CP_TFN%"
	if exist "%SystemDrive%\%~n0.$0$\%_CP_TFN%\"	goto abort
	if exist "%SystemDrive%\%~n0.$0$\"		rd "%SystemDrive%\%~n0.$0$"
	if exist "%SystemDrive%\%~n0.$0$\"		goto abort
	if exist "%~dpn0.$1$\" rd "%~dpn0.$1$"
	if exist "%~dpn0.$1$\" goto abort
	if not .%_CP_SA1%==.-frc (
		if exist "%~f3" (
			echo Check entries in "%~f3"
			start "" "%~f3"
		)
		if exist "%~dp0x%1%2.log" (
			echo Check "%~dp0x%1%2.log"
			start "" "%~dp0x%1%2.log"
		)
	)
	echo Done: %~n0
	goto exit

:abort
	echo.
	echo Aborted: %~n0
:exit
	set _CP_DST=
	set _CP_TFN=
	set _CP_CMD=
	set _CP_CWD=
	set _CP_TRG=
	set _CP_PRE=
	set _CP_OPR=
	set _CP_OMR=
	set _CP_OCP=
	set _CP_DEF=
	set _CP_OMD=
	set _CP_ATT=
	set _CP_SRC=
	set _CP_ARG=
	if not .%_CP_SA1%==.-frc pause
	set _CP_SA1=
:end
/* Copyright: Public Domain (free contents) for the inside of this border. */
/* Everyone can copy, revise and distribute/publish the contents in the inside of this border. */