我正在使用Powershell脚本验证降价,并且在命令行下使用
markdownlint.cmd "c:\index.md"
它返回如下所示的输出
levels should only increment by one level at a time [Expected: h2; Actual: h3]
index.md: 4: MD003/heading-style/header-style Heading style
[Expected: setext; Actual: atx]
我想将输出日志导出到一个变量,我想在其中进行测试
if( $output -contains '*Expected*')
{
Write-Host "contains errors"
}
不幸的是,我无法在代码内导出到变量,我该怎么办?有什么想法吗?
我尝试过的选项
$output = Invoke-Expression "markdownlint.cmd 'c:\index.md' "
markdownlint.cmd 'c:\index.md' | Export-csv c:\test.csv
没有帮助。
有什么想法吗?
TIA,
注意:markdownlint.cmd是CMD行Env
答案 0 :(得分:2)
只需将批处理命令和args括在括号中
$output = (markdownlint.cmd "c:\index.md")
if( $output -match 'Expected') {
Write-Host "contains errors"
}
在cmd.exe
所以markdownlint.cmd 'c:\index.md'
失败是因为它会按字面意义查找它们。
答案 1 :(得分:0)
导出csv 是两个命令的组合: convertTo-csv 通过管道传输到文件。
markdownlint.cmd“ c:\ index.md” 可能不会生成Powershell对象作为输出。
从Get-Help ConvertTo-Csv -Full
中,我可以看到 ConvertTo-csv 需要Powershell对象作为输入:
SYNTAX ConvertTo-Csv [-InputObject] <PSObject> [[-Delimiter] <Char>] [-NoTypeInformation] [<CommonParameters>] ConvertTo-Csv [-InputObject] <PSObject> [-NoTypeInformation] [-UseCulture] [<CommonParameters>]
您可以使用
markdownlint.cmd 'c:\index.md' | out-file 'c:\textfile.txt'
,然后检查文件内容,并查看如何解析或转换文件。