|I'm not sure I'm with you but the bat below may help.|
You want to be careful putting spaces in equality test [==]; things can get very confused.
You don't need to declare END; you can use the built-in :EOF, but for reasons unknown it needs the colon.
No need to test for each param individually. If 1 is missing then so are 2 and 3.
:: 3 param: src filename dest
@echo off & setLocal EnableDelayedExpansion
if %3'==' echo you need src filename dest && goto :eof
if not exist %1\%2 echo %2 not found && goto :eof
if not exist %3 echo %3 not found && goto :eof
copy . %3
If at first you don't succeed, you're about average.