我正在执行:
systeminfo | ConvertTo-Json
"Host Name: namehere",
"OS Name: Microsoft Windows 10 Enterprise",
...
但我需要
"Host Name": "namehere",
"OS Name": "Microsoft Windows 10 Enterprise",
...
以下命令提供了类似的问题
systeminfo | ConvertTo-Xml -As String
<?xml version="1.0" encoding="utf-8"?>
<Objects>
<Object Type="System.String"></Object>
<Object Type="System.String">Host Name: namehere</Object>
<Object Type="System.String">OS Name: Microsoft Windows 10 Enterprise</Object> "
但是我需要这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<HostName>namehere</HostName>
<OSName>Microsoft Windows 10 Enterprise</OSName>
...
答案 0 :(得分:4)
试试这个:
systeminfo /fo CSV | ConvertFrom-Csv
或
systeminfo /fo CSV | ConvertFrom-Csv | convertto-json
答案 1 :(得分:2)
补充thom schumacher's helpful answer:
在PSv5 +中,您也可以使用Get-ComputerInfo
。
虽然生成的Get-ComputerInfo
个实例中的字段(属性)名称与ConvertTo-Json
的输出中的字段名称相同,但您可能会得到<那里有其他信息。
由于ConvertTo-Xml
输出其属性包含信息的对象,您可以将直接发送到Get-ComputerInfo | ConvertTo-Json
/ systeminfo
< / p>
ConvertTo-Json
至于您尝试的内容:
ConvertTo-Xml
之类的外部程序只能输出文本,并且通常以(半)非结构化形式输出,这种形式更适合人类观看进一步的程序化处理。
相比之下,为了从systeminfo
/ /FO
获得有意义的输出,您需要结构化文本格式 - <properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
恰好通过其java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/compoT7]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1119)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/compoT7]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
... 6 more
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/web/SpringServletContainerInitializer : Unsupported major.minor version 52.0 (unable to load class org.springframework.web.SpringServletContainerInitializer)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:197)
at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:158)
at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1579)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1280)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:888)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5522)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 6 more
选项 - 或输入对象,这是您获得PowerShell的cmdlet输出。
因此,寻找PowerShell替代外部程序通常会更好;如果它们都没有,并且如果外部程序不提供结构化文本输出,则必须使用自己的文本解析来强加结构,这可能既脆弱又麻烦。