我有一个程序,我想要执行以下操作:
我已经完成了第1步和第2步,但我在第3步中苦苦挣扎。我使用以下代码:
注意:文件类型和命令仅用于测试
//Redirects output
procStart.RedirectStandardOutput = false;
procStart.UseShellExecute = true;
procStart.FileName = "C:\\Users\\Me\\Desktop\\Test\\System_Instructions.txt";
procStart.Arguments = "mkdir TestDir";
//No black window
procStart.CreateNoWindow = true;
Process.Start(procStart);
.txt
文档将会打开,但命令不会运行(testDir
文件夹中没有test
)
建议?
答案 0 :(得分:3)
见这里:
https://stackoverflow.com/search?q=+optimized+or+a+native+frame+is+on+top+of+the+call+stack
你不应该这样叫Response.End
因为这会终止它。
答案 1 :(得分:2)
我认为问题是您的Process
设置不正确。
您当前的代码将使用默认的.txt文件开启工具打开.txt文件(因为您指定了procStart.UseShellExecute = true;
)然后设置procStart.Arguments = "mkdir TestDir";
但这实际上并没有帮助您,因为所有这一切都将发生的是"mkdir TestDir"
将作为命令行参数传递给notepad.exe
。
你真正想要的是:
ProcessStartInfo
FileName
设置为cmd.exe
(并设置Arguments = "/C mkdir Test"
)CreateDirectory()
方法。我更喜欢#2,因为它更清楚地显示了你想做的事情,但要么应该有效。
更新:如果您需要使用选项1,那么您应该使用以下代码来查看出现了什么问题:
Process userCommandProc = Process.Start(procStart);
userCommandProc.WaitForExit();
if (userCommandProc.ExitCode != 0)
{
// Something has (very likely) gone wrong
}
else
{
// Most likely working
}
其他一些说明:
.ashx
处理程序然后是网页;页面加载应该尽可能快。