C# 使用ProcessStartInfo参数ncftpget进行质询

C# 使用ProcessStartInfo参数ncftpget进行质询,c#,tsql,processstartinfo,C#,Tsql,Processstartinfo,发布到的几个解决方案解释了如何将多个参数传递给ProcessStartInfo,以使用多个参数运行DOS命令。在这种特殊情况下,它们都不起作用 尝试从c应用程序内部运行ncftpget-使用精确的字符串文字@arg1 arg2 arg3将多个参数传递给可执行文件 所发生的事情是,参数列表足够长,以至于它被截断了,但不是我在最后期望的位置 所以我通过了一些类似于: Program = "ncftpget" Arguments = @"-f host.cfg D:\ServerBackups\Win

发布到的几个解决方案解释了如何将多个参数传递给ProcessStartInfo,以使用多个参数运行DOS命令。在这种特殊情况下,它们都不起作用

尝试从c应用程序内部运行ncftpget-使用精确的字符串文字@arg1 arg2 arg3将多个参数传递给可执行文件

所发生的事情是,参数列表足够长,以至于它被截断了,但不是我在最后期望的位置

所以我通过了一些类似于:

Program = "ncftpget"
Arguments = @"-f host.cfg D:\ServerBackups\Windows6 2012_01_28_SQLBackupFile.bak"
而ncftp得到的是

-f host.cfg D:\ServerBackups\Windows6 ackupfile.bak
如果我不直接调用ncftpget,而是编写一个bat文件并执行它,它就可以工作了

奇怪的是,使用XP_CMDShell从T/SQL调用ncftpget时,我调用的参数比这个长得多。就好像有一个环境变量说参数只能这么长,我将从一开始就截断它们,而不是从最后截断

我试着引用这些论点,没有区别,同样的行为


当然,如果微软真的有一个像样的ftp解决方案。。。这使用了正确的模式……但这是一个他们永远不会纠正的陈词滥调。

很奇怪它会这样做。您是否尝试在参数中引用路径?System.Net.FtpWebRequest无法满足您的需要?能否向我们展示您正在使用的代码?您提到的行为不是ProcessStartInfo的一部分,而是您的代码中存在截断特定字符串的错误。发布你的代码,肯定会有人为你指出错误。