在CMD中单行调用PowerShell提取对象DisplayName属性的实现方法
CMD环境下单行提取结构化对象DisplayName属性的解决方案
直接输出结果的单行命令
无需启动独立PowerShell窗口,直接在CMD中运行即可得到DisplayName属性值:powershell -NoProfile -Command "(你原本用于获取目标对象的完整PowerShell命令).DisplayName"
你不需要通过管道选择属性,直接使用.访问属性的语法即可生效,把括号内的内容替换为你实际获取该对象的命令即可。将结果存入CMD环境变量的命令
如果需要把提取到的值留作当前CMD窗口后续命令使用,用以下单行命令:
for /f "delims=" %i in ('powershell -NoProfile -Command "(你原本用于获取目标对象的完整PowerShell命令).DisplayName"') do @set "DISPLAY_NAME_VAL=%i"
执行完成后可通过echo %DISPLAY_NAME_VAL%查看提取结果。
注意事项:
- 该命令不会弹出独立的PowerShell窗口,仅在当前CMD进程内完成属性提取,符合执行限制要求。
- 如果你的对象获取命令内包含双引号,需要把内部双引号转义为
\",或者替换为单引号,避免CMD和PowerShell的引号解析冲突。- 你拿到的对象不属于哈希表结构,是PowerShell自定义对象/COM实例,本身没有
.keys方法,直接用.属性名访问就是最高效的实现方式。
内容的提问来源于stack exchange,提问作者A. Boy
相关产品推荐
相关产品推荐

