What you're trying to do is what I've heard referred to as "security by obscurity"....
You can pass the password in from a process that executes the batch file and lock down that process so no accounts can read from it that have access to that machine and perhaps use EFS for the folder it is in as well if you can or maybe bit locker encrypt the hard drive the script resides.
So in the batch you'd have SET ftpPass=%~1 and then with Task Scheduler or whatever you have locked down that executes it, pass the password in as the first argument as C:\Folder\FTPScript.bat "MyPassword" so in the script they'd only see %ftpPass%.
Batch Script Example
@ECHO ON
SET ftpPass=%~1
SET ftphost=<hostname>
SET ftpusr=<username>
SET ftptmpfile=%temp%\temp_MyFTPJob.ftp
IF EXIST "%ftptmpfile%" DEL /Q /F "%ftptmpfile%"
:ftp
ECHO open %ftphost%> %ftptmpfile%
ECHO %ftpusr%>> %ftptmpfile%
ECHO %ftpPass%>> %ftptmpfile%
ECHO prompt >> %ftptmpfile%
ECHO binary >> %ftptmpfile%
ECHO mput "C\folder\path\*.txt" >> %ftptmpfile%
ECHO dir >> %ftptmpfile%
ECHO bye >> %ftptmpfile%
ftp -s:%ftptmpfile%
IF EXIST "%ftptmpfile%" DEL /Q /F "%ftptmpfile%"
EXIT
Further Resources
Windows 10: Scheduled tasks with workstation lock/unlock not being triggered