O que você está tentando fazer é o que eu ouvi ser chamado de "segurança pela obscuridade" ...
Você pode passar a senha de um processo que executa o arquivo em lote e bloquear esse processo para que nenhuma conta possa ler a partir dele que tenha acesso a essa máquina e talvez use EFS para a pasta em que está, se você puder ou talvez bit locker criptografa o disco rígido que o script reside.
Portanto, no lote, você teria SET ftpPass=%~1
e, em seguida, com Agendador de Tarefas ou o que estiver bloqueado que o executa, passe a senha como o primeiro argumento como C:\Folder\FTPScript.bat "MyPassword"
so em o script eles só veriam %ftpPass%
.
Exemplo de script em lote
@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
Mais recursos
Windows 10: Tarefas agendadas com bloqueio / desbloqueio de estação de trabalho não acionadas