2008年11月11日 星期二

在.net下執行command mode指令

在.net下執行command mode指令


using System;

using System.Diagnostics;



單行指令


public void ExeCommand(string commandline)
{

Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
string strOutput = null;
p.StandardInput.WriteLine(commandline);
p.StandardInput.WriteLine("exit");
strOutput = p.StandardOutput.ReadToEnd();
Console.WriteLine(strOutput);
p.WaitForExit();
p.Close();
}



多行指令


public string ExeCommand(string[] commandTexts)
{
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
string strOutput = null;
try
{
p.Start();
foreach (string item in commandTexts)
{
p.StandardInput.WriteLine(item);
}
p.StandardInput.WriteLine("exit");
strOutput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();
}
catch (Exception e)
{
strOutput = e.Message;
}
return strOutput;
}

coreftp

先安裝coreftp



然後就可以在command mode下使用指令執行



一般ftp模式



下載

"程式執行檔在路徑" -d 遠端ftp address -p 下載檔案放置ㄉ位置

ex:
"c:\program files\coreftp\coreftp.exe" -d ftp://UserId:Password@140.96.149.49/CHT/CHT_IN/*.txt -p c:\fail\


上傳

"程式執行檔在路徑" -u 上傳檔案放置ㄉ位置 -p 遠端ftp address

ex:
"c:\program files\coreftp\coreftp.exe" -u c:\fail\*.txt -p ftp://UserId:Password@140.96.149.49/CHT/CHT_OUT/*.txt


ftp加密模式


下載

"程式執行檔在路徑" -d(下載) 遠端ftp address -site SiteName -p(路徑) 下載檔案放置ㄉ位置


ex:


"c:\program files\coreftp\coreftp.exe" -d ftp://UserId:Password@140.96.149.49/CHT/CHT_IN/*.txt -site CarApprove -p c:\fail\



上傳


"程式執行檔在路徑" -u(上傳) 上傳檔案放置ㄉ位置 -site SiteName -p(路徑) 遠端ftp address


ex:


"c:\program files\coreftp\coreftp.exe" -u c:\fail\*.txt -site CarApprove -p ftp://UserId:Password@140.96.149.49/CHT/CHT_OUT/*.txt



sitename設定如下:





新增一個連結~~~Connection選擇AUTH SSL(加密模式),便於在command mode下使用



在上傳、下載時,指令最後若加上 -delsrc 在上傳、下載動作成功結束時會一併清除檔案來源

其他指令可以參考coreftp網頁及coreftp help

http://www.coreftp.com/docs/web1/Command_Line_FTP.htm