This is an old revision of the document!
Session.ExecuteCommand Method
Executes command on the remote server.
This feature is available only in the latest beta release.
Advertisement
Syntax
C#
public CommandExecutionResult ExecuteCommand(string command)
VB.NET
Public Function ExecuteCommand(ByVal command As String) As CommandExecutionResult
Parameters
Name | Description |
---|---|
string command | Command to execute. |
Return Value
CommandExecutionResult
with command output.
Exceptions
Exception | Condition |
---|---|
InvalidOperationException | Session is not opened. |
SessionLocalException | Error communicating with winscp.com . See the exception documentation for details. |
SessionRemoteException | Session has failed. Command has failed. See the exception documentation for details. |
TimeoutException | Timeout waiting for winscp.com to respond. |
Advertisement
Remarks
With SFTP and SCP protocols, executes arbitrary remote shell command. With FTP protocol, executes a protocol command.
With SFTP protocol, that does not allow execution of arbitrary remote command, separate shell session will be automatically opened.
The command must not require user input.
Example
C# Example
using System; using WinSCP; class Example { public static int Main() { try { // Setup session options SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Sftp, HostName = "example.com", UserName = "user", Password = "mypassword", SshHostKey = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" }; using (Session session = new Session()) { // Connect session.Open(sessionOptions); // Execute mysqldump on the server to dump all MySQL databases and compress the results const string dbUsername = "USERNAME"; const string dbPassword = "PASSWORD"; const string tempFilePath = "/tmp/all_databases.gz"; string dumpCommand = string.Format("mysqldump --opt -u {0} --password={1} --all-databases | gzip > {2}", dbUsername, dbPassword, tempFilePath); session.ExecuteCommand(dumpCommand); // Download the database dump session.GetFiles(tempFilePath, "D:\\dbbackup\\").Check(); } return 0; } catch (Exception e) { Console.WriteLine("Error: {0}", e); return 1; } } }
Advertisement