C# 将ftp.exe与c一起使用#

C# 将ftp.exe与c一起使用#,c#,cmd,ftp,C#,Cmd,Ftp,我需要在C#中的CMD中输入以下内容: 导航到位置 启动ftp.exe 开放服务器 使用者 密码 获取文件 接近 退出 我如何做到这一点 请注意,我不能将Net.FtpWebRequest用于此特定任务 是否有一种方法可以像ftp用户一样登录一行:password@host是否尝试调用bat文件 System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStar

我需要在C#中的CMD中输入以下内容:

  • 导航到位置
  • 启动ftp.exe
  • 开放服务器
  • 使用者
  • 密码
  • 获取文件
  • 接近
  • 退出
  • 我如何做到这一点

    请注意,我不能将Net.FtpWebRequest用于此特定任务


    是否有一种方法可以像ftp用户一样登录一行:password@host是否尝试调用bat文件

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = @"/c e:\test\ftp.bat";
    startInfo.RedirectStandardOutput = true;
    startInfo.UseShellExecute = false;
    process.StartInfo = startInfo;
    process.Start();
    
    调用ftp.bat文件

    Bat文件包含

    ftp -s:commands.ftp
    
    然后在commands.ftp中

    open <server_address>
    <userid>
    <password>
    recv <source_file> <dest_file>
    bye
    
    打开
    记录
    再见
    

    或者类似的东西。

    尝试调用bat文件

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = @"/c e:\test\ftp.bat";
    startInfo.RedirectStandardOutput = true;
    startInfo.UseShellExecute = false;
    process.StartInfo = startInfo;
    process.Start();
    
    调用ftp.bat文件

    Bat文件包含

    ftp -s:commands.ftp
    
    然后在commands.ftp中

    open <server_address>
    <userid>
    <password>
    recv <source_file> <dest_file>
    bye
    
    打开
    记录
    再见
    

    或者类似的东西。

    尝试调用bat文件

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = @"/c e:\test\ftp.bat";
    startInfo.RedirectStandardOutput = true;
    startInfo.UseShellExecute = false;
    process.StartInfo = startInfo;
    process.Start();
    
    调用ftp.bat文件

    Bat文件包含

    ftp -s:commands.ftp
    
    然后在commands.ftp中

    open <server_address>
    <userid>
    <password>
    recv <source_file> <dest_file>
    bye
    
    打开
    记录
    再见
    

    或者类似的东西。

    尝试调用bat文件

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = @"/c e:\test\ftp.bat";
    startInfo.RedirectStandardOutput = true;
    startInfo.UseShellExecute = false;
    process.StartInfo = startInfo;
    process.Start();
    
    调用ftp.bat文件

    Bat文件包含

    ftp -s:commands.ftp
    
    然后在commands.ftp中

    open <server_address>
    <userid>
    <password>
    recv <source_file> <dest_file>
    bye
    
    打开
    记录
    再见
    

    或者类似的东西。

    我使用的解决方案:

    C.:

    唯一“不好”的地方是tmp.txt文件包含服务器的用户名和密码,该文件在下载该文件所需的时间内可用。该文件以纯文本形式显示:-/

    不过,我可以在名称后面附加一个随机字符串,使其更安全。

    我使用的解决方案:

    C.:

    唯一“不好”的地方是tmp.txt文件包含服务器的用户名和密码,该文件在下载该文件所需的时间内可用。该文件以纯文本形式显示:-/

    不过,我可以在名称后面附加一个随机字符串,使其更安全。

    我使用的解决方案:

    C.:

    唯一“不好”的地方是tmp.txt文件包含服务器的用户名和密码,该文件在下载该文件所需的时间内可用。该文件以纯文本形式显示:-/

    不过,我可以在名称后面附加一个随机字符串,使其更安全。

    我使用的解决方案:

    C.:

    唯一“不好”的地方是tmp.txt文件包含服务器的用户名和密码,该文件在下载该文件所需的时间内可用。该文件以纯文本形式显示:-/


    不过,我可以在名称后面附加一个随机字符串,使其更加安全。

    使用适当的.Net(或第三方)库通常比处理需要复杂交互的命令行应用程序更简单。有什么原因不能使用.Net库吗?使用适当的.Net(或第三方)库通常比处理需要复杂交互的命令行应用程序更简单。有什么原因不能使用.Net库吗?使用适当的.Net(或第三方)库通常比处理需要复杂交互的命令行应用程序更简单。有什么原因不能使用.Net库吗?使用适当的.Net(或第三方)库通常比处理需要复杂交互的命令行应用程序更简单。您不能使用.Net库有什么原因吗?谢谢您的回答,但我正在为具有不同用户设置的多个设备编写一个自动备份服务。这意味着我需要先为每个设备创建一个新的bat文件^^您认为使用动态对象而不是流程对象会改变我第一次尝试解决此问题时遇到的任何问题吗?()在执行cmd.Run之前,能否为每个用户生成commands.ftp文件?这将是一个解决方案。然而,这也将是非常复杂和肮脏的。但非常感谢您的建议。不一定脏,临时文件不会产生任何明显的混乱。感谢您的回答,但我正在为具有不同用户设置的多个设备编程一个自动备份服务。这意味着我需要先为每个设备创建一个新的bat文件^^您认为使用动态对象而不是流程对象会改变我第一次尝试解决此问题时遇到的任何问题吗?()在执行cmd.Run之前,能否为每个用户生成commands.ftp文件?这将是一个解决方案。然而,这也将是非常复杂和肮脏的。但非常感谢您的建议。不一定脏,临时文件不会产生任何明显的混乱。感谢您的回答,但我正在为具有不同用户设置的多个设备编程一个自动备份服务。这意味着我需要先为每个设备创建一个新的bat文件^^您认为使用动态对象而不是流程对象会改变我第一次尝试解决此问题时遇到的任何问题吗?()在执行cmd.Run之前,能否为每个用户生成commands.ftp文件?这将是一个解决方案。然而,这也将是非常复杂和肮脏的。但非常感谢您的建议。不一定脏,临时文件不会产生任何明显的混乱。感谢您的回答,但我正在为具有不同用户设置的多个设备编程一个自动备份服务。这意味着我需要先为每个设备创建一个新的bat文件^^您认为使用动态对象而不是流程对象会改变我第一次尝试解决此问题时遇到的任何问题吗?()在执行cmd.Run之前,能否为每个用户生成commands.ftp文件?这将是一个解决方案。然而,这也将是非常复杂和肮脏的。但非常感谢您的建议。临时文件不一定脏,不会产生任何明显的混乱。