我正在使用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
只需将批处理命令和args括在括号中即可
$output = (markdownlint.cmd "c:\index.md")
if( $output -match 'Expected') {
Write-Host "contains errors"
}
单引号在cmd.exe
中没有特殊含义,
所以markdownlint.cmd 'c:\index.md'
失败了,因为它从字面上看它们。
Export-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'
然后检查文件内容,看看如何解析或转换它。