Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C的PowerShell设备代码#_Powershell - Fatal编程技术网

C的PowerShell设备代码#

C的PowerShell设备代码#,powershell,Powershell,我是PowerShell的新手,一直在努力将下面的C#代码转换为PowerShell var vmDoc = XDocument.Load(vmStream); var vmElement = vmDoc.Descendants(ns + "entry") .Descendants(ns + "content"); var vmId = vmElement.Descendants().Descendants(nsData + "VirtualMachineID").FirstOr

我是PowerShell的新手,一直在努力将下面的C#代码转换为PowerShell

var vmDoc = XDocument.Load(vmStream);
var vmElement = vmDoc.Descendants(ns + "entry")
        .Descendants(ns + "content");
var vmId = vmElement.Descendants().Descendants(nsData + "VirtualMachineID").FirstOrDefault();
我尝试了下面的代码,但从未奏效

$vmElement = vmDoc.Descendants(ns + "entry")
    $_.Descendants($ns + "content")
$vmId = $vmElement.Descendants().Descendants($nsData + "VirtualMachineID").FirstOrDefault()
希望有人能帮助我

提前谢谢


拉曼尼看起来你只是误解了C#中的一个换行符。换行符并不意味着什么,为了便于阅读,通常会将长行延续到另一行。您错误地使用了第3行上的powershell“this pipeline”变量
$\uu

$vmElement = vmDoc.Descendants(ns + "entry").Descendants($ns + "content")
$vmId = $vmElement.Descendants().Descendants($nsData + "VirtualMachineID").FirstOrDefault()
编辑:查看后,不清楚您的原始C#代码是否也能工作。该方法返回一个
IEnumerable
,它不会公开
子体()
方法

我建议您在尝试转换到Powershell之前,集中精力使用C#代码

var vmDoc = XDocument.Load(vmStream);
var vmElement = vmDoc.Descendants(ns + "entry")
        .Descendants(ns + "content");
var vmId = vmElement.Descendants().Descendants(nsData + "VirtualMachineID").FirstOrDefault();
这可能会帮助您:

还有这个:

感谢您的快速响应!但是我遇到了不同的错误..PS C:\Work\Scripts>$vmElement=$vmDoc.subjects($ns+“entry”)。subjects($ns+“content”)方法调用失败,因为[System.Xml.Linq.XContainer+d__a]不包含名为“subjections”的方法。在第1行char:59+$vmElement=$vmDoc.subjections($ns+“entry”)。subjections如果您能在C#中提供问题的详细信息,我很乐意帮助您调试powershell。感谢James再次快速回复我。我在执行代码时遇到的问题是由powershell中不可用的扩展方法引起的。我想知道如何将(.NET)扩展导入Powershell。我想在这里提供我的代码,但空间限制不允许我这样做。