Download - PA053879

BSEK (Backup/copy Software Evaluation Kit)の詳細情報 : Vector ソフトを探す!

-> [Go to the download page] -> [Download Now]

The Latest Snapshot - BSEK

	@echo off
	goto begin

::-----------------------------------------------------------------------------
:: File Name: "xcpt.bat" - eXtended CoPy Test 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.?ps by S.	Modified to support extended attribute list.
:: 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
:: - SubInAcl version 5.2.3790.1180 (freeware, 32bit)
::   http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en
:: - LADS - List Alternate Data Streams 4.10 (freeware, 32bit)
::   http://www.heysoft.de/en/software/lads.php?lang=EN
:: - "xcp.bat" - eXtended CoPy BATch for Windows7 HP 64bit(x64)
::
:: 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
	set _CP_FSN=
	for /F "usebackq skip=3 tokens=2 delims=:" %%i in (`fsutil fsinfo volumeinfo \`) do (
		if "%%i"==" NTFS"	set _CP_FSN=NTFS
		if "%%i"==" FAT32"	set _CP_FSN=FAT32
		if "%%i"==" FAT"	set _CP_FSN=FAT
		goto eol
	)
:eol
	       if exist      "%ProgramFiles%\Windows Resource Kits\Tools\" (
		set "_CP_RKT=%ProgramFiles%"
	) else if exist "%ProgramFiles(x86)%\Windows Resource Kits\Tools\" (
		set "_CP_RKT=%ProgramFiles(x86)%"
	) else (
		set "_CP_RKT=%SystemDrive%\usr"
	)
	set _CP_RKT=%_CP_RKT%\Windows Resource Kits\Tools\
	if .%1==.-p goto purge
	if .%1==.-a goto arrange
	if .%1==.-t goto test

:usage
	echo Usage:
	echo  %~n0 -p/-a/-t [-man] [-vmp DRV] [ARG..]
	echo -p:   Purge DIR./FILE for Copy Test
	echo -a:   Arrange DIR./FILE for Copy Test
	echo -t:   Copy Test for Backup/Copy Softwares
	echo -man: Enable manual operation for FileVisor6, WinFM2008, Far Manager (with -a )
	echo -vmp: Enable operation for Volume Mount Points (with -a operator)
	echo DRV:  Drive Character (with -a operator, e.g. d: )
	echo ARG:  Optional Argument
	echo.
	echo e.g. %~n0 -p
	echo e.g. %~n0 -a -man -vmp d:
	echo e.g. %~n0 -t
	goto exit

:purge
	echo Purge DIR./FILE for Copy Test =================================================
	for /D %%i in (\X0 \X0_ALL0 \X0_ALL1D \X0_ALL1F \X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		if exist %%i\DIR_0M\ rd /S /Q %%i\DIR_0M
		if exist %%i\DIR_0M\ goto abort
		call xcp -frc -rob -p %%i
		if exist %%i\ rd %%i
		if exist %%i\ goto abort
	)
	echo Done: %~n0
	goto exit

:arrange
	echo Arrange DIR./FILE for Copy Test ===============================================
	for /D %%i in (\X0 \X0_ALL0 \X0_ALL1D \X0_ALL1F \X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		echo Aborted: "%%i" is already exist.
	)
	if .%2==.-vmp if not exist "%~3" (
		echo Aborted: "%~3" is not exist.
		goto exit
	)
	for /D %%i in (\X0 \X0_ALL0 \X0_ALL1D \X0_ALL1F \X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		goto exit
	)

:: Enable/Disable manual operation for FileVisor6(\X5), WinFM2008(\X6), Far Manager(\X7)
	set _CP_MAN=
	if .%2==.-man (
		set _CP_MAN= \X5 \X6 \X7
		shift /2
	)
	for /D %%i in (\X1 \X2 \X3 \X4%_CP_MAN%) do if not exist %%i\ (
		md %%i
		if errorlevel 1 goto abort
	)
	pushd .

:: Arrange DIR./FILE with all Attr. to be reset
	md \X0
	if errorlevel 1 goto abort
	cd \X0
	if errorlevel 1 goto abort

	md DIR_0
	if errorlevel 1 goto abort
	if .%_CP_FSN%==.NTFS (
		mklink /J DIR_0J DIR_0
		if errorlevel 1 goto abort
		mklink /D DIR_0L DIR_0
		if errorlevel 1 goto abort
	)

	echo 4MB_0.TXT> 4MB$0.TXT
	fsutil file createnew 4MB$1.TXT 4194304 > nul
	if errorlevel 1 goto abort
	copy /b 4MB$0.TXT+4MB$1.TXT 4MB_0.TXT > nul
	if errorlevel 1 goto abort
	if exist 4MB$?.TXT del 4MB$?.TXT
	if exist 4MB$?.TXT goto abort
	echo 1KB_0.TXT> 1KB_0.TXT

	cd \
	if errorlevel 1 goto abort
	ren X0 X0_ALL0
	if errorlevel 1 goto abort

:: Arrange DIR. with all Attr. to be set
	md \X0
	if errorlevel 1 goto abort
	cd \X0
	if errorlevel 1 goto abort

	md DIR_1
	if errorlevel 1 goto abort
	if .%_CP_FSN%==.NTFS (
		mklink /J DIR_1J DIR_1
		if errorlevel 1 goto abort
		mklink /D DIR_1L DIR_1
		if errorlevel 1 goto abort
	)

	cd \
	if errorlevel 1 goto abort
	ren X0 X0_ALL1D
	if errorlevel 1 goto abort

:: Arrange FILE with all Attr. to be set
	md \X0
	if errorlevel 1 goto abort
	cd \X0
	if errorlevel 1 goto abort

	echo 4MB_1.TXT> 4MB$0.TXT
	fsutil file createnew 4MB$1.TXT 4194304 > nul
	if errorlevel 1 goto abort
	copy /b 4MB$0.TXT+4MB$1.TXT 4MB_1.TXT > nul
	if errorlevel 1 goto abort
	if exist 4MB$?.TXT del 4MB$?.TXT
	if exist 4MB$?.TXT goto abort
	echo 1KB_1.TXT> 1KB_1.TXT

	cd \
	if errorlevel 1 goto abort
	ren X0 X0_ALL1F
	if errorlevel 1 goto abort

:: Merge arranged DIR./FILE
	md \X0
	if errorlevel 1 goto abort
	popd

	if exist \X0\ call xcp -frc -fc2 -c  \X0 \X0_ALL0
	if exist \X0\ call xcp -frc -fc2 -c  \X0 \X0_ALL1D
:	if exist \X0\ call xcp -frc -fc2 -c  \X0 \X0_ALL1F

	if exist \X0\ call xcp -frc -ric -r  \X0 \X0_ALL0
	if exist \X0\ call xcp -frc -ric -sd \X0 \X0_ALL1D
	if exist \X0\ call xcp -frc -ric -sf \X0 \X0_ALL1F

	for /D %%i in (\X0_ALL0 \X0_ALL1D \X0_ALL1F) do if exist %%i\ (
		call xcp -frc -rob -p %%i
		if exist %%i\ rd %%i
		if exist %%i\ goto abort
	)

	pushd .
	cd \X0
	if errorlevel 1 goto abort
	md DIR_0M
	if errorlevel 1 goto abort
:BUG: Attr:H (HIDDEN) not reset with Attr:A (ARCHIVE) for FILE (reset for DIR.) with RichCopy ("xcp -ric -r DST SRC")
:BUG: Attr:S (SYSTEM) not reset with Attr:A (ARCHIVE) for FILE (reset for DIR.) with RichCopy ("xcp -ric -r DST SRC")
	echo YHA.TXT> YHA.TXT
	attrib +H +A YHA.TXT
	echo YSA.TXT> YSA.TXT
	attrib +S +A YSA.TXT

:: Set Attr:P (SPARSE_FILE) for FILE
	if .%_CP_FSN%==.NTFS for %%i in (4MB_1 1KB_1) do (
		attrib -R -H -S %%i.TXT
		fsutil sparse setflag %%i.TXT
		if errorlevel 1 goto abort
	)

:: Make Alternate Data Streams for DIR./FILE
	if .%_CP_FSN%==.NTFS (
		attrib -R -H -S DIR_1
		echo DIR_0:STREAM.TXT> DIR_0:STREAM.TXT
		echo DIR_0M:STREAM.TXT> DIR_0M:STREAM.TXT
		echo 4MB_0.TXT:STREAM.TXT> 4MB_0.TXT:STREAM.TXT
		echo 1KB_0.TXT:STREAM.TXT> 1KB_0.TXT:STREAM.TXT
		echo DIR_1:STREAM.TXT> DIR_1:STREAM.TXT
		echo 4MB_1.TXT:STREAM.TXT> 4MB_1.TXT:STREAM.TXT
		echo 1KB_1.TXT:STREAM.TXT> 1KB_1.TXT:STREAM.TXT
	)

:: Make Hard Links for FILE
	if .%_CP_FSN%==.NTFS for %%i in (4MB_0 1KB_0 4MB_1 1KB_1) do (
		mklink /H %%iH.TXT %%i.TXT
		if errorlevel 1 goto abort
	)

:: Make Symbolic Links for FILE
	if .%_CP_FSN%==.NTFS for %%i in (4MB_0 1KB_0 4MB_1 1KB_1) do (
		mklink %%iL.TXT %%i.TXT
		if errorlevel 1 goto abort
	)

:: Make Volume Mount Points for DIR.
	if .%2==.-vmp if exist "%~3" (
		if .%_CP_FSN%==.NTFS for /F "usebackq" %%i in (`mountvol %~3 /L`) do (
			echo	mountvol %~3 /L
				mountvol %~3 /L
			if errorlevel 1 goto abort
			echo	mountvol DIR_0M %%i
				mountvol DIR_0M %%i
			if errorlevel 1 goto abort
			echo	mountvol DIR_0M /L
				mountvol DIR_0M /L
			if errorlevel 1 goto abort
		)
		shift /2
		shift /2
	)

:: Enable Very Long Paths over 260 char.
	md  \X0\0\0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde
	if errorlevel 1 goto abort
	ren \X0\0 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde
	if errorlevel 1 goto abort

:: To save extended attribute list
	if exist "%~dp0xat.bat" copy nul XAT.TXT > nul

:: Save order of DIR. entries (FAT32/FAT)
	if not .%_CP_FSN%==.NTFS forfiles > XODE.TXT

:: Save Access Control Lists
	if .%_CP_FSN%==.NTFS for /D %%i in (\X0) do if exist %%i\ (
		copy nul XACL_S.TXT  > nul
		copy nul XACL_I.TXT  > nul
		copy nul XACL_SG.TXT > nul
		copy nul XACL_IG.TXT > nul
		copy nul XACL_SS.TXT > nul
		copy nul XACL_IS.TXT > nul

rem		if exist "%_CP_RKT%subinacl.exe" (
			"%_CP_RKT%subinacl" /outputlog=XACL_S.TXT /stringreplaceonoutput=" %%~fi\\"=" " /nostatistic /file * /display=sddl
			if errorlevel 1 goto abort
rem		) else (
			forfiles /C "cmd /U /C if not @file==\"$\" icacls @file /save $ /L & echo.>> $& copy /b XACL_I.TXT+$ XACL_I.TXT" > nul
			if errorlevel 1 goto abort
			if exist $ del $
			if exist $ goto abort
rem		)

rem		"%_CP_RKT%subinacl" /nostatistic /file * /grant="Administrator"=F > nul
rem		if errorlevel 1 goto abort
		icacls * /grant:r "Administrator":"(GA)" /L /Q
		if errorlevel 1 goto abort

rem		if exist "%_CP_RKT%subinacl.exe" (
			"%_CP_RKT%subinacl" /outputlog=XACL_SG.TXT /stringreplaceonoutput=" %%~fi\\"=" " /nostatistic /file * /display=sddl
			if errorlevel 1 goto abort
rem		) else (
			forfiles /C "cmd /U /C if not @file==\"$\" icacls @file /save $ /L & echo.>> $& copy /b XACL_IG.TXT+$ XACL_IG.TXT" > nul
			if errorlevel 1 goto abort
			if exist $ del $
			if exist $ goto abort
rem		)

		md Microsoft
		if errorlevel 1 goto abort
		attrib +S +I Microsoft

rem		if exist "%_CP_RKT%subinacl.exe" (
rem			"%_CP_RKT%subinacl" /outputlog=xwin.txt /subdirectories "%SystemDrive%\Windows\\" /display=sddl
rem			"%_CP_RKT%subinacl" /outputlog=xpro.txt /subdirectories "%SystemDrive%\Program Files\\" /display=sddl
rem			"%_CP_RKT%subinacl" /outputlog=xuse.txt /subdirectories "%SystemDrive%\Users\\" /display=sddl
			"%_CP_RKT%subinacl" /outputlog=XACL_SS.TXT /stringreplaceonoutput=" %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow\Microsoft\\"=" " /nostatistic /subdirectories %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow\Microsoft\ /display=sddl
rem:			"%_CP_RKT%subinacl" /outputlog=XACL_SS.TXT            /stringreplaceonoutput=" C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow\Microsoft\\"=" " /nostatistic /subdirectories            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow\Microsoft\ /display=sddl
			if errorlevel 1 goto abort
rem		) else (
rem			icacls "%SystemDrive%\Windows" /save xwin.txt /T /L
rem			icacls "%SystemDrive%\Program Files" /save xpro.txt /T /L
rem			icacls "%SystemDrive%\Users" /save xuse.txt /T /L
			forfiles /P "%SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow\Microsoft" /S /C "cmd /U /C if not @file==\"$\" icacls @path /save %%~fi\$ /L & echo.>> %%~fi\$& copy /b %%~fi\XACL_IS.TXT+%%~fi\$ %%~fi\XACL_IS.TXT" > nul
rem:			forfiles /P            "C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow\Microsoft" /S /C "cmd /U /C if not @file==\"$\" icacls @path /save %%~fi\$ /L & echo.>> %%~fi\$& copy /b %%~fi\XACL_IS.TXT+%%~fi\$ %%~fi\XACL_IS.TXT" > nul
			if errorlevel 1 goto abort
			if exist $ del $
			if exist $ goto abort
rem		)
	)

:: Reset/Set Attr. for DIR./FILE
	attrib -R -H -S -A -I *_0* /S /D /L
	attrib +R +H +S +A +I *_1* /S /D /L
:BUG: Creation Time not copied for FILE of READONLY (copied for DIR.) with WinFM2008
:	attrib -R -H -S       *_1* /S /D /L
:	attrib    +H +S       *_1* /S /D /L

:: Save extended attribute list
	if exist "%~dp0xat.bat" (
rem		forfiles /C "cmd /C (\"%~dp0xat\" -wtf @path)" | sort /+22 > XAT.TXT
		forfiles /C "cmd /C (\"%~dp0xat\" @path)" | sort /+22 > XAT.TXT
	)

:: Check for SRC: \X0
	popd
	if .%_CP_FSN%==.NTFS for /D %%i in (\X0) do if exist %%i\ (
		for %%j in (4MB_1 4MB_1H 4MB_1L 1KB_1 1KB_1H 1KB_1L) do (
			echo %%i\%%j.TXT:
			fsutil sparse queryflag  %%i\%%j.TXT
			fsutil sparse queryrange %%i\%%j.TXT
		)
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X0) do if exist %%i\ (
		compact /A %%i\*
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X0) do if exist %%i\ (
		for %%j in (4MB_0 1KB_0 4MB_1 1KB_1) do (
			echo Hard Links of %%i\%%j.TXT:
			fsutil hardlink list %%i\%%j.TXT
		)
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X0) do if exist %%i\ (
rem		dir /A /R %%i
		lads %%i
	)

	if exist \X0\ (
		echo Check entries in "\X0"
		start \X0
	)
	echo Done: %~n0
	goto exit

:test
	echo Copy Test for Backup/Copy Softwares ===========================================

:: Disable Very Long Paths over 260 char.
	ren \X0\0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde 0
	if errorlevel 1 goto abort

:: Copy Test without Very Long Paths over 260 char.
:	if exist \X1\ call xcp -frc -rob -c  \X1 \X0
	if exist \X2\ call xcp -frc -ric -c  \X2 \X0
:	if exist \X3\ call xcp -frc -fc2 -c  \X3 \X0
:	if exist \X4\ call xcp -frc -ffc -c  \X4 \X0
	if exist \X5\ call xcp -frc -fv6 -c  \X5 \X0
:	if exist \X6\ call xcp -frc -wfm -c  \X6 \X0
:	if exist \X7\ call xcp -frc -far -c  \X7 \X0

:: Enable Very Long Paths over 260 char.
	ren \X0\0 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde
	if errorlevel 1 goto abort

:: Copy Test with Very Long Paths over 260 char.
:: Error with RichCopy (-ric) and FileVisor6 (-fv6)
	if exist \X1\ call xcp -frc -rob -c  \X1 \X0
:	if exist \X2\ call xcp -frc -ric -c  \X2 \X0
	if exist \X3\ call xcp -frc -fc2 -c  \X3 \X0
	if exist \X4\ call xcp -frc -ffc -c  \X4 \X0
:	if exist \X5\ call xcp -frc -fv6 -c  \X5 \X0
	if exist \X6\ call xcp -frc -wfm -c  \X6 \X0
	if exist \X7\ call xcp -frc -far -c  \X7 \X0

:: Save order of DIR. entries (FAT32/FAT)
	pushd .
	if not .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		cd %%i
		if errorlevel 1 goto abort
		forfiles > XODE.TXT
	)

:: Save Access Control Lists
	if .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		cd %%i
		if errorlevel 1 goto abort
		if exist Microsoft\ rd /S /Q Microsoft
		if exist Microsoft\ goto abort
		copy nul XACL_SG.TXT > nul
		copy nul XACL_IG.TXT > nul
		copy nul XACL_SS.TXT > nul
		copy nul XACL_IS.TXT > nul

rem		if exist "%_CP_RKT%subinacl.exe" (
			"%_CP_RKT%subinacl" /outputlog=XACL_SG.TXT /stringreplaceonoutput=" %%~fi\\"=" " /nostatistic /file * /display=sddl
			if errorlevel 1 goto abort
rem		) else (
			forfiles /C "cmd /U /C if not @file==\"$\" icacls @file /save $ /L & echo.>> $& copy /b XACL_IG.TXT+$ XACL_IG.TXT" > nul
			if errorlevel 1 goto abort
			if exist $ del $
			if exist $ goto abort
rem		)
	)
	popd
	pushd .
	if .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
rem BUG?: icacls: "S:AINO_ACCESS_CONTROL" may be set with Robocopy (-rob)
		if %%i==\X1 call xcp -frc -rob -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem		if %%i==\X1 call xcp -frc -rob -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow
		if %%i==\X2 call xcp -frc -ric -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem:		if %%i==\X2 call xcp -frc -ric -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow
		if %%i==\X3 call xcp -frc -fc2 -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem:		if %%i==\X3 call xcp -frc -fc2 -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow
		if %%i==\X4 call xcp -frc -ffc -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem:		if %%i==\X4 call xcp -frc -ffc -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow
		if %%i==\X5 call xcp -frc -fv6 -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem:		if %%i==\X5 call xcp -frc -fv6 -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow
		if %%i==\X6 call xcp -frc -wfm -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem:		if %%i==\X6 call xcp -frc -wfm -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow
		if %%i==\X7 call xcp -frc -far -c  %%i %SystemDrive%\Windows\ServiceProfiles\LocalService\AppData\LocalLow
rem:		if %%i==\X7 call xcp -frc -far -c  %%i            C:\Windows\ServiceProfiles\LocalService\AppData\LocalLow

		if exist %%i\Microsoft\ (
rem			if exist "%_CP_RKT%subinacl.exe" (
				"%_CP_RKT%subinacl" /outputlog=%%~fi\XACL_SS.TXT /stringreplaceonoutput=" %%~fi\Microsoft\\"=" " /nostatistic /subdirectories %%~fi\Microsoft\ /display=sddl
				if errorlevel 1 goto abort
rem			) else (
				forfiles /P "%%i\Microsoft" /S /C "cmd /U /C if not @file==\"$\" icacls @path /save %%~fi\$ /L & echo.>> %%~fi\$& copy /b %%~fi\XACL_IS.TXT+%%~fi\$ %%~fi\XACL_IS.TXT" > nul
				if errorlevel 1 goto abort
				if exist %%i\$ del %%i\$
				if exist %%i\$ goto abort
rem			)
		)
		if not exist %%i\Microsoft\ md %%i\Microsoft
		if not exist %%i\Microsoft\ goto abort
	)

:: Save extended attribute list
	if exist "%~dp0xat.bat" for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		cd %%i
		if errorlevel 1 goto abort
rem		forfiles /C "cmd /C (\"%~dp0xat\" -wtf @path)" | sort /+22 > XAT.TXT
		forfiles /C "cmd /C (\"%~dp0xat\" @path)" | sort /+22 > XAT.TXT
	)
	popd

:: Check for DST: \X1 .. \X7
	if exist XODE.log del XODE.log
	if exist XODE.log goto abort
	if not .%_CP_FSN%==.NTFS echo Check order of DIR. entries (FAT32/FAT)> XODE.log
	if not .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		echo ------------------------------------------------------------------------------->> XODE.log
		fc \X0\XODE.TXT %%i\XODE.TXT >> XODE.log
	)
	if exist XODE.log (
		echo.
		echo Check "XODE.log"
		start XODE.log
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		for %%j in (4MB_1 4MB_1H 4MB_1L 1KB_1 1KB_1H 1KB_1L) do (
			echo %%i\%%j.TXT:
			fsutil sparse queryflag  %%i\%%j.TXT
rem			fsutil sparse queryrange %%i\%%j.TXT
		)
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		compact /A %%i\*
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
		for %%j in (4MB_0 1KB_0 4MB_1 1KB_1) do (
			echo Hard Links of %%i\%%j.TXT:
			fsutil hardlink list %%i\%%j.TXT
		)
	)

	if exist XACL_SG.log del XACL_SG.log
	if exist XACL_SG.log goto abort
	if .%_CP_FSN%==.NTFS for %%i in (\X0\XACL_SG.TXT) do if 0%%~zi GTR 0 (
		echo Check DACL etc. with subinacl for granted ACL> XACL_SG.log
		for /D %%j in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%j\ (
			echo ------------------------------------------------------------------------------->> XACL_SG.log
			fc /U \X0\XACL_SG.TXT %%j\XACL_SG.TXT >> XACL_SG.log 2>>&1
		)
		echo.
		echo Check "XACL_SG.log"
		start XACL_SG.log
	)

	if exist XACL_IG.log del XACL_IG.log
	if exist XACL_IG.log goto abort
	if .%_CP_FSN%==.NTFS for %%i in (\X0\XACL_IG.TXT) do if 0%%~zi GTR 0 (
		echo Check DACL etc. with icacls for granted ACL> XACL_IG.log
		for /D %%j in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%j\ (
			echo ------------------------------------------------------------------------------->> XACL_IG.log
			fc /U \X0\XACL_IG.TXT %%j\XACL_IG.TXT >> XACL_IG.log 2>>&1
		)
		echo.
		echo Check "XACL_IG.log"
		start XACL_IG.log
	)

	if exist XACL_SS.log del XACL_SS.log
	if exist XACL_SS.log goto abort
	if .%_CP_FSN%==.NTFS for %%i in (\X0\XACL_SS.TXT) do if 0%%~zi GTR 0 (
		echo Check Owner, Group and SACL etc. with subinacl for system> XACL_SS.log
		for /D %%j in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%j\ (
			echo ------------------------------------------------------------------------------->> XACL_SS.log
			fc /U \X0\XACL_SS.TXT %%j\XACL_SS.TXT >> XACL_SS.log 2>>&1
		)
		echo.
		echo Check "XACL_SS.log"
		start XACL_SS.log
	)

	if exist XACL_IS.log del XACL_IS.log
	if exist XACL_IS.log goto abort
	if .%_CP_FSN%==.NTFS for %%i in (\X0\XACL_IS.TXT) do if 0%%~zi GTR 0 (
		echo Check Owner, Group and SACL etc. with icacls for system> XACL_IS.log
		for /D %%j in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%j\ (
			echo ------------------------------------------------------------------------------->> XACL_IS.log
			fc /U \X0\XACL_IS.TXT %%j\XACL_IS.TXT >> XACL_IS.log 2>>&1
		)
		echo.
		echo Check "XACL_IS.log"
		start XACL_IS.log
	)

	if exist XAT.log del XAT.log
	if exist XAT.log goto abort
	if exist "%~dp0xat.bat" for %%i in (\X0\XAT.TXT) do if 0%%~zi GTR 0 (
		echo Check extended attributes etc.> XAT.log
		for /D %%j in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%j\ (
			echo ------------------------------------------------------------------------------->> XAT.log
			fc \X0\XAT.TXT %%j\XAT.TXT >> XAT.log 2>>&1
		)
		echo.
		echo Check "XAT.log"
		start XAT.log
	)

	if .%_CP_FSN%==.NTFS for /D %%i in (\X1 \X2 \X3 \X4 \X5 \X6 \X7) do if exist %%i\ (
rem		dir /A /R %%i
		lads %%i
	)

	for /D %%i in (\X7 \X6 \X5 \X4 \X3 \X2 \X1) do if exist %%i\ (
		start %%i
		timeout /T 1 /NOBREAK > nul
	)
	if exist \X1\ echo DIR./FILE copied from \X0 to \X1 with Robocopy
	if exist \X2\ echo DIR./FILE copied from \X0 to \X2 with RichCopy
	if exist \X3\ echo DIR./FILE copied from \X0 to \X3 with FastCopy
	if exist \X4\ echo DIR./FILE copied from \X0 to \X4 with Fire File Copy
	if exist \X5\ echo DIR./FILE copied from \X0 to \X5 with FileVisor6
	if exist \X6\ echo DIR./FILE copied from \X0 to \X6 with WinFM2008
	if exist \X7\ echo DIR./FILE copied from \X0 to \X7 with Far Manager
	echo Check Very Long Paths, Links of Reparse Points, Time Stamps and Attributes etc.
	echo Done: %~n0
	goto exit

:abort
	echo.
	echo Aborted: %~n0
:exit
	set _CP_FSN=
	set _CP_RKT=
	set _CP_MAN=
	pause
:end
/* Copyright: Public Domain (free contents) for the contents in the just above element. */
/* Everyone can copy, revise and distribute/publish the contents in the just above element. */
/* Everyone can copy, paste, save and use the contents in the just above element. */

Links - PA053879

Top Page - PA053879

BSEK (Backup/copy Software Evaluation Kit)

Windows システムをファイルコピー型バックアップする検討内容

"xcpt.bat" - eXtended CoPy Test BATch for Windows7 HP 64bit(x64)

"xcp.bat" - eXtended CoPy BATch for Windows7 HP 64bit(x64)

"xat.bat" - eXtended ATtrib BATch for Windows7 HP 64bit(x64)

"bcde.bat" - Boot Configuration Data Edit BATch for Windows 7 (OEM_SLP) / PE3.x - BCD Builder/Generator

"t2hp.bat" - Text TO xHtml Parts BATch for perl

"dddi.bat" - Device class Drivers DisInstaller / Inactive-Installer BATch for Windows 7 (OEM_SLP) / PE3.x

"bpbf.bat" - "BPB" display tool text Filtering wrapper

The making of the integrated ISO file / bootable CD/DVD/BD

The making of 2048[sct] aligned / 2^n[GB] normalized partitions

Ideal 2TB HDD, 256GB partitions, Optimal alignment

Ideal 2TB HDD, 256GB partitions, with gaps for Cyl. boundary

Ideal 2TB HDD, 128GB partitions, Optimal alignment

Ideal 2TB HDD, 128GB partitions, with gaps for Cyl. boundary

Ideal 2TB HDD, 64GB partitions, Optimal alignment

Ideal 2TB HDD, 64GB partitions, with gaps for Cyl. boundary

I-O DATA HDPC-UT, 64GB partitions, with gaps for Cyl. boundary

Hitachi HTS545050B9A300, 64GB partitions, with gaps for Cyl. boundary

FUJITSU MHT2030AT, 8GB partitions, with gaps for Cyl. boundary

Ideal USB Memory, single partition, Optimal alignment

The making of USB bootable system for Windows 7 (OEM_SLP) / PE3.x

counter