| name | fastcopy-file-transfer-accelerator |
| description | High-performance multi-threaded file copying and synchronization utility for Windows with advanced caching and verification |
| triggers | ["how do I use fastcopy to copy files faster","configure fastcopy for maximum transfer speed","set up fastcopy with multiple streams","fastcopy command line options","create a fastcopy transfer profile","fastcopy verification and resume settings","optimize fastcopy buffer size","automate file copying with fastcopy"] |
FastCopy File Transfer Accelerator
Skill by ara.so — Devtools Skills collection.
FastCopy is a high-performance file copying and synchronization utility for Windows that uses multi-threaded I/O to maximize transfer speeds. It supports parallel streams, integrity verification, resume capabilities, and intelligent buffer management.
Installation
Windows (Recommended):
# Download from official source
# Visit: https://fastcopy.jp/en/
# Or using winget
winget install FastCopy
# Portable version - extract to desired location
Expand-Archive fastcopy-portable.zip -DestinationPath C:\Tools\FastCopy
Add to PATH (optional):
$env:PATH += ";C:\Program Files\FastCopy"
# Or for portable:
$env:PATH += ";C:\Tools\FastCopy"
Core Commands
Basic Syntax
fastcopy.exe [source] [destination] [options]
Common Operations
Simple copy:
fastcopy "C:\Source\Files" "D:\Backup\" /cmd=diff
Mirror synchronization:
fastcopy "C:\Projects" "E:\Archive\Projects" /cmd=sync /force_close
Move files:
fastcopy "C:\Temp\Downloads" "D:\Storage" /cmd=move
Verify after copy:
fastcopy "C:\Data" "\\NAS\Backup" /cmd=diff /verify
Key Command Options
| Option | Description | Example |
|---|
/cmd= | Copy mode: diff, sync, move, delete | /cmd=sync |
/bufsize= | Buffer size in MB (default: auto) | /bufsize=256 |
/verify | Verify files after transfer | /verify |
/linkdest | Create hardlinks instead of copy | /linkdest |
/exclude= | Exclude patterns | /exclude="*.tmp;*.log" |
/include= | Include only patterns | /include="*.jpg;*.png" |
/force_close | Force close open files | /force_close |
/log | Enable logging | /log |
/logfile= | Specify log file path | /logfile="C:\Logs\copy.log" |
/error_stop | Stop on first error | /error_stop |
/acl | Copy ACL/permissions | /acl |
/stream | Copy alternate data streams | /stream |
Configuration Profiles
FastCopy uses .ini files for configuration. Create reusable profiles:
Example: High-Speed Transfer Profile
[main]
bufsize=512
estimate=1
verify=1
wipe_del=0
acl=0
stream=0
reparse=0
verify_mode=0
maxhist=20
[SyncProfile]
source=C:\Source
dest=D:\Destination
command=sync
bufsize=256
verify=1
filter_mode=0
exclude=*.tmp
Load profile from command line:
fastcopy /cmd=sync /ini="C:\FastCopy\profiles\backup.ini"
Advanced Usage Patterns
Automated Backup Script
@echo off
REM backup-script.bat
SET FASTCOPY="C:\Program Files\FastCopy\FastCopy.exe"
SET SOURCE=C:\Important\Data
SET DEST=E:\Backups\%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2%
SET LOGFILE=C:\Logs\backup-%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2%.log
REM Create timestamped backup with verification
%FASTCOPY% "%SOURCE%" "%DEST%" ^
/cmd=diff ^
/bufsize=256 ^
/verify ^
/acl ^
/stream ^
/error_stop ^
/log ^
/logfile="%LOGFILE%" ^
/exclude="*.tmp;*.cache;thumbs.db" ^
/force_close
if %ERRORLEVEL% EQU 0 (
echo Backup completed successfully
) else (
echo Backup failed with error %ERRORLEVEL%
exit /b %ERRORLEVEL%
)
PowerShell Integration
# fastcopy-wrapper.ps1
function Invoke-FastCopy {
param(
[Parameter(Mandatory=$true)]
[string]$Source,
[Parameter(Mandatory=$true)]
[string]$Destination,
[ValidateSet('diff', 'sync', 'move', 'delete')]
[string]$Mode = 'diff',
[int]$BufferSize = 256,
[switch]$Verify,
[string[]]$Exclude = @(),
[string]$LogPath
)
$fastcopyPath = "C:\Program Files\FastCopy\FastCopy.exe"
$arguments = @(
"`"$Source`"",
"`"$Destination`"",
"/cmd=$Mode",
"/bufsize=$BufferSize"
)
if ($Verify) {
$arguments += "/verify"
}
if ($Exclude.Count -gt 0) {
$excludePattern = $Exclude -join ";"
$arguments += "/exclude=`"$excludePattern`""
}
if ($LogPath) {
$arguments += "/log"
$arguments += "/logfile=`"$LogPath`""
}
$arguments += "/force_close"
Write-Host "Starting FastCopy: $($arguments -join ' ')"
& $fastcopyPath $arguments
if ($LASTEXITCODE -eq 0) {
Write-Host "Transfer completed successfully" -ForegroundColor Green
return $true
} else {
Write-Host "Transfer failed with exit code: $LASTEXITCODE" -ForegroundColor Red
return $false
}
}
# Usage example
Invoke-FastCopy `
-Source "C:\Projects" `
-Destination "\\NAS\Backup\Projects" `
-Mode sync `
-BufferSize 512 `
-Verify `
-Exclude @("*.tmp", "*.log", "node_modules", ".git") `
-LogPath "C:\Logs\project-sync.log"
Network Transfer Optimization
REM For network transfers (SMB/CIFS), optimize buffer and streams
fastcopy "C:\LocalData" "\\RemoteServer\Share\Data" ^
/cmd=sync ^
/bufsize=512 ^
/verify ^
/no_ui ^
/force_close ^
/acl ^
/log
REM For very large files (video, databases), increase buffer
fastcopy "C:\Videos" "D:\Archive" ^
/cmd=diff ^
/bufsize=1024 ^
/verify
Scheduled Task Integration
Create scheduled backup (PowerShell):
$action = New-ScheduledTaskAction `
-Execute "C:\Program Files\FastCopy\FastCopy.exe" `
-Argument '"C:\Data" "E:\Backup" /cmd=sync /verify /log /force_close'
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
$principal = New-ScheduledTaskPrincipal `
-UserId "SYSTEM" `
-LogonType ServiceAccount `
-RunLevel Highest
Register-ScheduledTask `
-TaskName "FastCopy Daily Backup" `
-Action $action `
-Trigger $trigger `
-Principal $principal `
-Description "Automated daily backup using FastCopy"
Performance Tuning
Buffer Size Selection
REM Small files (< 100MB total): 32-64MB buffer
fastcopy "C:\Documents" "D:\Backup" /cmd=diff /bufsize=64
REM Medium files (100MB-10GB): 128-256MB buffer
fastcopy "C:\Projects" "E:\Archive" /cmd=sync /bufsize=256
REM Large files (> 10GB): 512-1024MB buffer
fastcopy "C:\Videos" "F:\Media" /cmd=diff /bufsize=1024
REM Network transfers: 256-512MB buffer
fastcopy "C:\Data" "\\NAS\Share" /cmd=sync /bufsize=512
Exclude Common Temporary Files
fastcopy "C:\Development" "D:\Backup\Dev" ^
/cmd=sync ^
/exclude="*.tmp;*.log;*.cache;node_modules;.git;.svn;bin;obj;target;__pycache__;.vs;.vscode;*.swp;*.swo;Thumbs.db;.DS_Store"
Common Patterns
Mirror Backup (Delete Removed Files)
REM Sync mode mirrors source to destination (deletes extra files)
fastcopy "C:\ActiveProject" "E:\Backups\ActiveProject" ^
/cmd=sync ^
/verify ^
/log
Incremental Backup (Keep Extra Files)
REM Diff mode only copies new/changed files (keeps extra files)
fastcopy "C:\ActiveProject" "E:\Backups\ActiveProject" ^
/cmd=diff ^
/verify ^
/log
Safe Move with Verification
fastcopy "C:\Completed\Archive" "D:\LongTerm\Archive" ^
/cmd=move ^
/verify ^
/error_stop ^
/log
Hardlink Deduplication
REM Create hardlinks for duplicate files to save space
fastcopy "C:\Media" "D:\Deduplicated" ^
/cmd=diff ^
/linkdest ^
/verify
Troubleshooting
Access Denied Errors
REM Run with elevated privileges and force close open files
fastcopy "C:\LockedFiles" "D:\Backup" ^
/cmd=diff ^
/force_close ^
/acl
REM Skip files that can't be accessed
fastcopy "C:\System" "D:\Backup" ^
/cmd=diff ^
/skip_empty_dir ^
/verify
Network Path Issues
REM Use UNC paths explicitly
fastcopy "\\Server1\Share\Data" "\\Server2\Backup\Data" ^
/cmd=sync ^
/bufsize=256 ^
/force_close
REM Map network drive first if UNC fails
net use Z: \\Server\Share /user:DOMAIN\Username
fastcopy "C:\Local" "Z:\Backup" /cmd=sync
net use Z: /delete
Verify Failures
REM Check disk space and permissions
fastcopy "C:\Source" "D:\Dest" ^
/cmd=diff ^
/verify ^
/log ^
/logfile="C:\Logs\verify-debug.log"
REM Review log for specific verification errors
Performance Issues
REM Reduce buffer size if running out of memory
fastcopy "C:\Data" "D:\Backup" /cmd=diff /bufsize=64
REM Disable verification for initial bulk transfer
fastcopy "C:\Massive" "E:\Archive" /cmd=diff /bufsize=512
REM Then verify separately
fastcopy "C:\Massive" "E:\Archive" /cmd=diff /verify /open_window
Exit Codes
0 - Success
1 - Error occurred during copy
2 - Fatal error (unable to continue)
3 - User cancelled operation
Handle exit codes in scripts:
@echo off
fastcopy "C:\Source" "D:\Dest" /cmd=sync /verify
if %ERRORLEVEL% EQU 0 (
echo Success
exit /b 0
) else if %ERRORLEVEL% EQU 1 (
echo Partial failure - check logs
exit /b 1
) else (
echo Fatal error
exit /b 2
)
Environment Variables
# Set default FastCopy path
$env:FASTCOPY_PATH = "C:\Program Files\FastCopy\FastCopy.exe"
# Set default log directory
$env:FASTCOPY_LOGS = "C:\Logs\FastCopy"
Use in scripts:
%FASTCOPY_PATH% "C:\Source" "D:\Dest" /log /logfile="%FASTCOPY_LOGS%\copy.log"