p4在C#Perforce Wrapper或P4 API中打开-a

时间:2012-12-18 02:06:51

标签: c# api wrapper perforce

我发现这个帖子非常有用,我想问一下Ian Norton他的包装器。 HERE是我尝试IanNorton发布的包装器的链接。我不确定这是否是正确的地方,我也不想在与他的回复相关时创建一个新的主题。所以我会继续努力,不受任何反对意见的影响。

我目前正在尝试使用你的包装器,我似乎无法在运行它时触发它。我不想使用选项,因为我只想将其设置为在计时器上运行的.exe。很简单,我想使用p4打开-a cmd并将输出打印到文件中。这就对了。 NooB将非常感谢任何帮助。

非常感谢!

这就是我使用命令行所得到的。不幸的是我无法将我的信息输出到文本文件。

using System;
using System.Diagnostics;
using System.IO;

namespace P4OpenCMD
{
    class P4Opened
    {
        // Main begins program execution.
        static void Main(string[] args)
        {
            string temp = string.Empty;

            if (temp != string.Empty)
            {
                Process p = new Process();
                ProcessStartInfo info = new ProcessStartInfo();
                info.FileName = "cmd.exe";
                info.RedirectStandardInput = true;
                info.UseShellExecute = false;

                p.StartInfo = info;
                p.Start();

                StreamWriter sw = p.StandardInput;

                using (sw = p.StandardInput)
                {
                    if (sw.BaseStream.CanWrite)
                    {
                        sw.WriteLine("set P4PORT=####");
                        sw.WriteLine("set P4USER=####");
                        sw.WriteLine("set P4CLIENT=####");
                        sw.WriteLine("set P4PASSWD=####");
                        sw.WriteLine("p4 opened -a //Depot/...");
                        sw.WriteLine("pause;");
                    }
                    Console.WriteLine();
                }
                sw.Close();
                p.WaitForExit();
                p.Close();
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果你这样做,你应该保持良好状态:

info.FileName = "cmd.exe";
info.Arguments = "/c p4 opened > opened.txt";