gpt4 book ai didi

xml - Powershell-IEX语法问题

转载 作者:行者123 更新时间:2023-12-03 01:18:54 26 4
gpt4 key购买 nike

经过几天的前进和后退两步,我仍在尝试获取一个命令的输出并将各种值分配回变量。在PS提示符下,我可以创建一个XML文件,然后使用以下命令成功解析出数据:

MediaInfo.exe --output=XML <path-to-file> >> .\info_out.xml
$xml = [xml](Get-Content .\info_out.xml)

$xml.Mediainfo.File.track[1]

$xml.Mediainfo.File.track[1].Duration --> 5mn 0s
$xml.Mediainfo.File.track[1].Format --> MPEG Video
$xml.Mediainfo.File.track[1].Format_profile --> 4:2:2@High

现在我的问题是当尝试使用IEX或&调用MediaInfo --output = XML开关时。
我宁愿不必每次都将XML写入文件,并且理想情况下是希望使用xml函数,而不必每次都写入/读取/清理XML文件。

这是我正在做的一个例子:
## Gather file info with MediaInfo (CLI) as XML
$tool = "C:\Program` Files\MediaInfoCLI\MediaInfo.exe"
$xmlswitch = "--Output=XML"
$Args = @("$tool", "$xmlswitch", "$filename" )

write-host "`n .............Testing.............. `n"
Write-Host "Executable: $tool"
Write-Host "XML switch: $xmlswitch"
Write-Host "Filename: $filename"
Write-Host "Args: $Args `n `n"

$test = IEX $tool $xmlswitch $filename
write-host $test
$test2 = IEX $Args
write-host $test2

exit 0

$ test给出:

Invoke-Expression : A positional parameter cannot be found that accepts argument '-->Output=XML'. At C:\Program Files\GXFunpack\bin\mediainfo.v02.ps1:52 char:12 + $test = IEX <<<< $tool $xmlswitch $filename + CategoryInfo : InvalidArgument: (:) [Invoke-Expression], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand



$ test2给出:

Invoke-Expression : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Command'. Specified method is not supported. At C:\Program Files\GXFunpack\bin\mediainfo.v02.ps1:54 char:13 + $test2 = IEX <<<< $Args + CategoryInfo : InvalidArgument: (:) [Invoke-Expression], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.InvokeExpressionCommand



我已经尝试了语法的许多变化和偏差:
  • $ tool =“C:\ Program Files \ MediaInfoCLI \ MediaInfo.exe”
  • $ tool = C:\“程序文件” \ MediaInfoCLI \ MediaInfo.exe
  • IEX“$ tool $ xmlswitch $ filename”
  • “`-`-output = XML”
  • 和许多很多其他...

  • 但是每次它只会吐出下一个隐式错误。

    谁能告诉我我途中的错误?

    最佳答案

    试试这个:

    [xml]$xml = (MediaInfo.exe --output=XML <path-to-file>)

    那应该运行您的命令并将输出收集到变量 $xml中。

    关于xml - Powershell-IEX语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21534088/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com