c#运行批处理语句第一句成功第二句失败

运行第一句批处理成功得到了PID,想利用PID再执行第二局批处理就不行了,是IO流的原因吗?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string getPID = "taskkill /im YoukuDesktop.exe /f";
        string useNTSD = "ntsd /p ";
        Process myPro = new Process();
        myPro.StartInfo.FileName = "cmd.exe";//打开DOS控制平台 
        myPro.StartInfo.UseShellExecute = false;
        myPro.StartInfo.CreateNoWindow = false;//是否显示DOS窗口,true代表隐藏;
        myPro.StartInfo.RedirectStandardInput = true;
        myPro.StartInfo.RedirectStandardOutput = true;
        myPro.StartInfo.RedirectStandardError = true;
        myPro.Start();
        StreamWriter sIn = myPro.StandardInput;//标准输入流 
        sIn.AutoFlush = true;
        StreamReader sOut = myPro.StandardOutput;//标准输出流 
        StreamReader sErr = myPro.StandardError;//标准错误流 
        sIn.Write(getPID + System.Environment.NewLine);//DOC命令
        sIn.Write("exit" + System.Environment.NewLine);//第四条DOS命令,退出DOS窗口

        string s = sOut.ReadToEnd();//读取执行DOS命令后输出信息 
        string er = sErr.ReadToEnd();//读取执行DOS命令后错误信息 
        int position = s.IndexOf("PID 为 ");
        if (myPro.HasExited == false)
        {
            myPro.Kill();
            MessageBox.Show(er);
        }
        else
        {
            label1.Text = position.ToString() ;
            s = s.Remove(0,position+6);
            s = s.Substring(0, 6);
            s = Regex.Replace(s, @"[^\d]*", "");
            textBox1.Text = "PIN码是:"+s;
        }
        useNTSD = useNTSD + s;
        //--------------------------------------------------------------------------------------------
        sIn.Write(useNTSD + System.Environment.NewLine);//DOC命令
        sIn.Write("exit" + System.Environment.NewLine);//第四条DOS命令,退出DOS窗口
        string s2 = sOut.ReadToEnd();//读取执行DOS命令后输出信息 
        string er2 = sErr.ReadToEnd();//读取执行DOS命令后错误信息 
        if (myPro.HasExited == false)
        {
            myPro.Kill();
            MessageBox.Show(er2);
        }
        else
        {
            textBox2.Text = s2;
        }
            sIn.Close();
        sOut.Close();
        sErr.Close();
        myPro.Close();
    }
}