我想运行一组通常在telnet中运行的命令(来自c#).
例如,我想运行以下内容
using System;
using System.Diagnostics;
namespace InteractWithConsoleApp
{
class Program
{
static void Main(string[] args)
{
ProcessStartInfo cmdStartInfo = new ProcessStartInfo();
cmdStartInfo.FileName = @"C:\Windows\System32\cmd.exe";
cmdStartInfo.RedirectStandardOutput = true;
cmdStartInfo.RedirectStandardError = true;
cmdStartInfo.RedirectStandardInput = true;
cmdStartInfo.UseShellExecute = false;
cmdStartInfo.CreateNoWindow = true;
Process cmdProcess = new Process();
cmdProcess.StartInfo = cmdStartInfo;
cmdProcess.ErrorDataReceived += cmd_Error;
cmdProcess.OutputDataReceived += cmd_DataReceived;
cmdProcess.EnableRaisingEvents = true;
cmdProcess.Start();
cmdProcess.BeginOutputReadLine();
cmdProcess.BeginErrorReadLine();
cmdProcess.StandardInput.WriteLine("telnet telehack.com");
int milliseconds = 2000;
System.Threading.Thread.Sleep(milliseconds);
cmdProcess.StandardInput.WriteLine("exit");
cmdProcess.StandardInput.WriteLine("exit");
cmdProcess.WaitForExit();
}
static void cmd_DataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
} …Run Code Online (Sandbox Code Playgroud) 我知道我可以使用'SftpClient'类的SSH.NET库从/向sFTP服务器上传和下载文件,但我不确定如何使用此类在sFTP服务器上复制或移动远程文件.我也没有在互联网上找到相关资料.如何使用SSH.NET库和C#将远程文件从目录A复制或移动到目录B.
更新: 我也尝试使用下面的代码试验SshClient类,但它什么也没做,既没有任何错误也没有任何异常.
ConnectionInfo ConnNfo = new ConnectionInfo("FTPHost", 22, "FTPUser",
new AuthenticationMethod[]{
// Pasword based Authentication
new PasswordAuthenticationMethod("FTPUser","FTPPass")
}
);
using (var ssh = new SshClient(ConnNfo))
{
ssh.Connect();
if (ssh.IsConnected)
{
string comm = "pwd";
using (var cmd = ssh.CreateCommand(comm))
{
var returned = cmd.Execute();
var output = cmd.Result;
var err = cmd.Error;
var stat = cmd.ExitStatus;
}
}
ssh.Disconnect();
}
Run Code Online (Sandbox Code Playgroud)
在Visual Studio控制台上,我得到以下输出.
*SshNet.Logging详细:1:SendMessage到服务器'ChannelRequestMessage':'SSH_MSG_CHANNEL_REQUEST:#152199'.
SshNet.Logging详细:1:来自服务器的ReceiveMessage:'ChannelFailureMessage':'SSH_MSG_CHANNEL_FAILURE:#0'.*
我想知道如何在 Visual Basic Express 中使用 C# 打开 putty。然后通过 ssh 会话执行命令。