上传后在服务器端执行批处理文件:C#

时间:2013-01-17 09:00:19

标签: c# ftp batch-file

我使用C#(FtpWebRequest)中的FTP将批处理文件传输(上传)到服务器。批处理文件有一些命令。我的要求是将批处理文件传输到服务器(我能够做到)并执行该批处理文件。

如何从客户端执行服务器上批处理文件中的命令?我可以使用Process.Start()方法或rsh ??这是更好的方法,并且可以欣赏到该示例的链接。

5 个答案:

答案 0 :(得分:2)

上次我需要远程复制和运行批处理文件时,我使用了PSExec。但是,这需要远程计算机上的管理员权限。

答案 1 :(得分:2)

您可以尝试使用SITE FTP命令来运行该文件,但这是服务器和操作系统特定的(即您无法在Unix或.sh文件上启动.BAT文件Windows服务器,也不是所有服务器都支持通过SITE命令执行外部命令。)

如果这没有帮助,您必须在远程端设置一些服务器(例如SSH服务器),并在通过FTP上传后使用SSH协议连接到该SSH服务器(但如果您使用SSH,则不要不需要FTP - 您可以使用基于SSH的SFTP代替)。

答案 2 :(得分:0)

您可以运行运行批处理文件的计划任务(例如每五分钟一次)。您可能必须执行一些清理任务,例如在运行后删除批处理文件(因此它不会无意中再次运行)。

(如果您的批处理文件每次都有不同的名称......可能需要重新考虑一下。)

关于这一点的好处是它非常简单,它使用非常可靠的Windows调度程序,不需要第三方应用程序。

答案 3 :(得分:0)

Nayan Soni For执行Bath文件System.Diagnostics.Process.Start(FileName, Parameters); 对于插座参考:http://www.codeproject.com/Articles/10649/An-Introduction-to-Socket-Programming-in-NET-using 此示例http://diaryanakku.files.wordpress.com/2013/01/socket.jpeg(将文件.jpeg更改为.7z)和Extract。抱歉有限制。

答案 4 :(得分:-1)

另一个选择你可以使用socket编程,当bath文件完成传输时,向服务器发送命令执行bath文件。我认为这是第二选择。