我正在编写一个脚本,它会自动捕获屏幕截图并触发iSight在脚本运行时拍摄静态照片,然后将其上传到FTP。除了一件事之外,一切都很完美,我的FTP需要在提示时输入用户名和密码(在捕获两个图像之后)
继承人我所拥有的:
echo “GOLDENEYE ACTIVATED….”
screencapture -x screen.jpg
imagesnap Mugshot.jpg
ftp <YourServerHere>
终端回复:
Connected to <YourServerHere>
现在,必须输入用户名:
220 Welcome to <ServerDomain>, FTP server standing by ...
Name (<ServerName>.<DomainName>.:<Name>): <Type UserName Here - Hit Enter>
并且,在成功输入有效用户名后输入密码:
331 Hello <UserName>, your FTP account password is required:
Password: <Type Your Password Here - Hit Enter>
输入正确的凭据后,终端将回复:
230-Login successful, your current directory is /
230 0 Kbytes used (0%) - authorized: 7340032 Kb
Remote system type is UNIX.
Using binary mode to transfer files.
并上传图片:
ftp> put /Mugshot.jpeg
ftp> put /Screen.jpeg
我试图在提示后自动输入用户名和密码,以便脚本成功
文本将是,在给出每个提示后输入“用户名”和“密码”。
我对终端和脚本都是全新的,只是在我的业余时间闲逛,请原谅任何不正确的地方,感谢任何帮助和教育!
答案 0 :(得分:0)
一般解决方案是expect
command。
但是对于你的任务来说,这太过分了。
ftp
从标准输入中读取命令。
所以就这样做:
ftp -n < command.txt
-n
会阻止自动提示输入用户名/密码。我们使用下面的user
命令明确地提供这些。
commands.txt
文件如下所示:
open host
user user password
put /path
bye
答案 1 :(得分:-1)
您可以尝试使用此批次,只需将参数更改为您的
@echo off
Title Multiple file Upload by Hackoo
mode con cols=85 lines=22 & Color A
::***********************************
Set FTPSERVER=ftp.xx.xxx.xx.xx.com
Set USER=UserName
Set Password=YourPassword
Set LocalFolder=X:\test\test
Set RemoteFolder=/tempTest/tempTest/
::***********************************
> ft.do echo Open %FTPSERVER%
>> ft.do echo %USER%
>> ft.do echo %Password%
>> ft.do echo prompt n
>> ft.do echo bin
>> ft.do echo lcd %LocalFolder%
>> ft.do echo cd %RemoteFolder%
>> ft.do echo mput *.*
>> ft.do echo bye
ftp -s:ft.do
del ft.do
Pause