Perforce命令行:如何在"p4 client -i"中使用-i标志?

pat*_*ick 4 c# workspace command-line client perforce

我想在命令行上编辑/创建一个工作区,而不会弹出任何文本编辑器.文档说使用-i标志来使用标准输入.这种用法的语法/格式是什么?

传递文件正常工作:p4 client -i <fileDefiningTheWorkspace.txt

传递定义工作空间的实际字符串不起作用:p4 client -i"Root:C:\ The\Root\r \nOptions:noallwrite noclobber ....."

有任何想法吗?谢谢!

Jas*_*onD 5

只输入这样的字符串就不会在标准输入中传递它.您需要引导一些输入,就像您传递文件的第一个示例一样.

如果您确实需要将字符串作为命令行的一部分,则需要使用echo之类的方法来管理相应的文本.但是echo不支持换行符,因此您需要分别回显每一行:

(echo line1&echo line2&echo line3)| p4客户端-i

很快就会变得非常丑陋.

由于你似乎真的想知道如何从c#中做到这一点,这里是一个非常粗略和准备好的例子,它启动一个命令行进程并提供输入:

        ProcessStartInfo s_info = new ProcessStartInfo(@"sort.exe");
        s_info.RedirectStandardInput = true;
        s_info.RedirectStandardOutput = true;
        s_info.UseShellExecute = false;
        Process proc = new Process();
        proc.StartInfo = s_info;
        proc.Start();
        proc.StandardInput.WriteLine("123");
        proc.StandardInput.WriteLine("abc");
        proc.StandardInput.WriteLine("456");
        proc.StandardInput.Close();
        String output = proc.StandardOutput.ReadToEnd();
        System.Console.Write(output);
Run Code Online (Sandbox Code Playgroud)