首页 文章

编写脚本以响应具有指定文本的提示

提问于
浏览
1

我正在编写一个脚本,它将自动捕获屏幕截图并触发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

我试图在给出提示后自动输入用户名和密码,以便脚本成功

文本将是,在给出每个提示后输入“用户名”和“密码” .

我对终端和脚本都是全新的,只是在业余时间闲逛,请原谅任何不正确的地方,感谢任何帮助和教育!

2 回答

  • -1

    一般的解决方案是expect command .

    但是对于你的任务来说,这是一种过度杀伤力 .


    ftp 从标准输入读取命令 .

    所以这样做:

    ftp -n < command.txt
    

    -n 阻止自动提示输入用户名/密码 . 我们使用下面的 user 命令明确提供这些 .

    commands.txt 文件如下所示:

    open host
    user user password
    put /path
    bye
    
  • 0

    您可以尝试使用此批处理,只需将参数更改为您的

    @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
    

相关问题