与从批处理文件调用的可执行文件交互

时间:2014-03-10 16:42:20

标签: asp.net shell batch-file ftp cmd

我有一个可执行文件,可以打开命令提示符并连接到FTP。我们使用此命令通过在命令窗口中手动键入getput命令来下载和上载文件。我的最终目标是使用ASP.NET控制台应用程序或批处理文件自动执行FTP过程,任何一个都可以使用。我已经尝试在批处理文件中调用可执行文件,后跟ftp命令,但它等待可执行文件在批处理文件中运行下一个命令之前退出。

"C:\MyFtp.exe" get ‘FtpFile.txt’ C:\temp\MyFile.txt timeout /t 5

为了说明,如果我打开上面的批处理文件,我希望它在get可执行文件中执行MyFtp.exe命令。但是在执行其他命令之前,它等待我输入quit。有没有人有任何建议?

1 个答案:

答案 0 :(得分:2)

这是一个vbscript,可以满足您的要求。您可以通过批处理文件“C:\ windows \ system32 \ cscript.exe C:\ my \ file \ _ location.vbs”激活它,或者如果您使用的是32位系统,则可以直接激活它。查看vbscript信息部分以获取更多详细信息。

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("""C:\my folder loc\MyFtp.exe""")'Keep double quotes for specific path names

Do Until Success = True
    Success = objShell.AppActivate("Untitle - FTP") ' Put application title text here (e.g. Untitle - Notepad)
    Wscript.Sleep 1000
Loop
enter code here
objShell.SendKeys "get 'FtpFile.Txt' C:\temp\MyFile.txt"
objShell.SendKeys "~" 'enter
objShell.SendKeys "timeout /t 5"
objShell.SendKeys "~" 'enter