Some information about commandline tools
The original acts often very dull: Comparing large files it allocates huge amounts of memory. And it reads the files thru the Windows file cache even if its useless because of the file size.
FCB reads directly from the disk. It uses three separate threads for reading the two files and for comparing. So FCB is nearly always faster than FC.EXE. The only exeption is when you compare a file with itself. FCB then really reads the data twice from disk while FC gets the data of the 'second file' from the Windows file cache.
The usage is similar to the original but the /B parameter doesn't exist because FCB only supports the binary mode.
FCB FileSpec1 FileSpec2 [-s][-p][-e:mask][-i][-sz][-fi:n][-st:n][-r:n][-q][-lv][-ld][-n] -s recurse subdirs (default if source is a folder) -p parse reparse points -e exclude mask (once for each mask) -i ignore different file sizes, compare up to smaller size -fi:n first n bytes only -st:n start at byte n -sz do not compare blocks which are zero only in file1 or file2 -sz1 do not compare blocks which are zero only in file1 -sz2 do not compare blocks which are zero only in file2 -r:n retry n times on CRC or IO error (default 10) -q quiet mode (show summary only) -lv list volumes\n" -ld list disks\n" -n no wait for keypress on finish if started standalone
Last update: 06 July 2025
FFC FileSpec1 FileSpec2 [-s][-o][-oo][-or][-k][-sr][-sw][-u][-h][-bc][-p][-sec][-ads][-cx][-lzx][-sp][-sz][-e][-u][-v][-ve][-ds][-n] -s recurse subdirs (default if source is a folder) -o overwrite existing files -oo overwrite older existing files -or overwrite older existing files even they have the read-only attribute -k skip existing files -sr share read (by default FFC wants exclusive read access on devices)" -sw share write (by default FFC wants needs exclusive write access)" -u avoid unnecessary writes when overwriting exiting files (by read, compare, write changed clusters only) -h create hardlinks instead copies (on same NTFS or ReFS volume only) -bc create block clones instead regular copies (on same ReFS volume only) -p parse reparse points (instead of copying the reparsepoint itself) (reparse points which point to the source path are never parsed, the copy will point to the target path) -mir mirror: delete files at target which do not exist in source (be careful...) -scan scan target to find existing source file under different name or path avoiding unnessecary writes (experimental): only valid with -mir -t:nn test size for -scan: to find existing identical files FFC scans by default 1MB at start, middle and end of the file. With -t:nn a different test size can be set. Units as K, M, T can be used. -t:f for full scan -sec copy security attributes -ads copy alternative data streams -c0 do not compress target -c1 compress target if source is compressed and space was saved -c2 compress target if space saving is expected (non zip, jpg, avi etc) -c3 compress target even no space saving is expected (default is don't care, compression is inherited from parent folder) -lzx LZX compress target (Win10+) -sp set 'sparse file' attribute for target files and set all-zero blocks to 'sparse' -sz skip all-zero blocks when writing (useful only when writing to devices) -e exclude mask (once for each mask) -v verify written data -ve verify written data and existing files -r:n on CRC or IO error retry read sectors n times, default is 10 -ds delete source file(s) -f flush target volume's file cache (needs admin privileges) -1 print file names into one line by shortening to the width of the console window -q quiet mode -lv list volumes -ld list disks -n no wait for key on finish if started standalone
Last update: 24 October 2025
FSF - Find Same File V1.2.0 (Win32) - Freeware by Uwe Sieber Usage: FSF FileSpec1 [FileSpec2] [-t:testsize][-m:minfilesize][-x:maxfilesize] [-i][-s][-n][-d][-h][-bc]... -t:size test 3 blocks of this size only instead of the whole file e.g. -t:1M for testing 1 MB at file start, mid and end -m:size minimum file size to test, smaller files are skipped e.g. -m:1K for testing files larger than 1KB -x:size maximum file size to test, larger files are skipped e.g. -x:1M for testing file smaller than 1MB -i identical file names only -s scan subdirs 1+2 -s1 scan subdirs 1 (default if FileSpec1 is a folder) -s2 scan subdirs 2 (default if FileSpec2 is a folder) -r scan reparse points 1+2 -r1 scan reparse points 1 -r2 scan reparse points 2 -r scan reparse points -fh find hardlinks (by default hardlinks are not handled as identical files) -fbc find block clones (by default block clones are not handled as identical files) -ded delete emptied directories -n no wait for key on finish if started standalone if duplicate found: -d1 delete file1 -d2 delete file2 -d delete the file which is more fragmented -h replace the file which is more fragmented by hardlink -bc replace the file which is more fragmented by a block clone -dsn delete the file with the shorter file name -dln delete the file with the longer file name -dsp delete the file with the shorter path name -dlp delete the file with the longer path name -do delete the file with the older write date -dn delete the file with the newer write date -e1 rename file1 -e2 rename file2When dealing with one folder only then the file with the deeper path is considered as file2.
Last update: 06 July 2025
Usage:
ListLinks FileSpec [-s] -s recurse subdirsSample:
ListLinks C:\* -sReparse points are shown when found while hard links must be collected and matched first, so they are listed at the end.
Download: ListLinks.zip
Last update: 31 Octl 2021
Usage: SetFileSize filename newsize [-m][-c][-s] -m make new file if not exist -s set the sparse file flag -c set the compressed file flag initially -c2 set the compressed file flag after SetEndOfFile -z call FSCTL_SET_ZERO_DATA for new bytes filename must be the first parameter. newsize must be a whole decimal or hexadecimal number with an optional unit:Samples:
SetFileSize test.bin 1024 SetFileSize test.bin 0x400 SetFileSize test.bin 1024Ki SetFileSize test.bin 15TiB -m -sThe following units can be used:
Download:
SetFileSize_Win32.zip
SetFileSize_x64.zip
Last update: 06 July 2025
Uwe Sieber