如何使用CSSLint?

时间:2016-07-11 08:15:20

标签: c# jenkins command-line csslint

我发现一些命令行参数要以xml格式生成CSSLint报告。通过命令提示符运行时工作正常。

参数:

  

csslint --format = csslint-xml" {SourceDir} \ bootstrap.css" > " C:\ TEMP \ csslint.xml"

我想通过C#应用程序执行它。我尝试了以下代码。

Process process = new Process()
{
    StartInfo =
    {
        FileName = "cmd.exe",
        Arguments = "csslint --format=csslint-xml " + @"""{SourceDir}\bootstrap.css""" + @" > ""C:\Temp\CssLint.xml""",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true,
    }
};

process.Start();
process.WaitForExit();

但它不起作用。我可以为这个问题找到解决方案或想法吗?

还有什么方法可以为指定目录生成CSSLint报告吗?我想提供目录路径而不是文件名。

1 个答案:

答案 0 :(得分:2)

您需要将/K/C添加到cmd以执行作为参数传递的流程,因此:

Arguments = "/C csslint --format=csslint-xml " + @"""{SourceDir}\bootstrap.css""" + @" > ""C:\Temp\CssLint.xml""",

来自the documentation

  

选项

     

/ C运行命令然后终止

     

/ K Run Command然后返回CMD提示符。            这对于测试,检查变量

非常有用

有一点需要注意......管道(命令行的> "C:\temp\csslint.xml"部分)不是参数,而是重定向。

如果要从应用程序重定向stdout(RedirectStandardOutput = true),可以直接从C#中捕获它,无需将其管道传输到您尝试执行的文件中:您需要处理StartWaitForExit来电之间的Process.OutputDataReceived事件,或者从Process.StandardOutput信息流中读取。

关于第二个问题,csslint CLI允许传入目录而不是文件