【问题标题】:Need to execute FTP commands from batch script需要从批处理脚本执行 FTP 命令
【发布时间】:2012-09-19 04:34:09
【问题描述】:

需要编写将文件从 FTP 复制到本地驱动器的批处理脚本

我正在尝试使用cmd 命令提示符来实现此目的

在批处理文件中

请帮助我或粘贴任何线程。

非常感谢我找到了答案,但是,

我需要使用两个文件script.txtbatch.bat

其中包含script.txt代码:

open ftp.server.com
username
password
cd folderpath/newfolder
get file1.xml
close
bye

和batch.bat代码

ftp -v -i -s:script.txt
echo done!

但是我怎样才能只使用 .bat 文件,这样我只需要 1 个文件而不是 2 个文件

【问题讨论】:

    标签: command-line command batch-file


    【解决方案1】:

    作为起点:

    1. 对 FTP 站点执行 NSLOOKUP,例如nslookup ftp.microsoft.com 记下 IP 地址
    2. 编辑 LMHOSTS 文件(在 %systemroot%\system32\drivers\etc 中)
    3. 添加 MicrosoftFTP #PRE 行,例如207.46.133.140 MicrosoftFTP #PRE
    4. 保存文件
    5. 打开 CMD.EXE 会话。输入命令:nbtstat -R 这将清除并重新加载名称表缓存
    6. 键入命令:net view \MicrosoftFTP 您应该会看到网站上的信息
    7. 现在映射驱动器(共享数据)网络使用 * \MicrosoftFTP\data /user:anonymous
    8. 全部完成。它将传递连接的驱动器号

    下一步是通过编写命令脚本并在必要时使用 file/string manipulation 更新主机文件来自动执行步骤 1-4。

    有了驱动器映射后,您大概可以从一个驱动器到另一个驱动器进行正常的 Xcopy。

    参考: http://answers.yahoo.com/question/index?qid=20080612073002AAruBR0

    更新响应您的编辑:

    在您的主批处理.bat 文件中,动态创建 script.txt,如下所示:

    @echo off 
    @echo open ftp.server.com > script.txt
    @echo username >> script.txt
    @echo password >> script.txt
    @echo cd folderpath/newfolder >> script.txt
    @echo get file1.xml >> script.txt
    @echo close >> script.txt
    @echo bye >> script.txt
    

    那就做吧

    ftp -v -i -s:script.txt
    

    最后 - 整理一下,删除临时 script.txt:

    del script.txt
    

    【讨论】:

    • 非常感谢!但是我怎么能只在.bat文件中做到这一点我的意思是只使用一个文件:)
    • 完美,只需要丢失“>”前面的空格,否则用户名和密码会得到多余的空格,脚本会失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多