powershell - 如何将 Powershell 命令的输出定向到 CMD 变量
问题描述
我正在使用 PowerShell 来获取文件的文件版本
C:\WINDOWS\system32>powershell (Get-Command C:\Users\lafarnum\Downloads\aniteloggingclientapi.dll).FileVersionInfo.FileVersion 1.12.0.4
输出文件版本为 1.12.0.4。我想将此文件版本像正常分配一样通过管道传输到 DOS CMD 变量中,但问题是它只是分配 PowerShell 命令字符串,而不是 PowerShell 命令的输出
C:\WINDOWS\system32>set pfpathset=powershell (Get-Command C:\Users\lafarnum\Downloads\aniteloggingclientapi.dll).FileVersionInfo.FileVersion
C:\WINDOWS\system32>echo %pdpathset% %pdpathset%
C:\WINDOWS\system32>echo %pfpathset% powershell (Get-Command C:\Users\lafarnum\Downloads\aniteloggingclientapi.dll).FileVersionInfo.FileVersion
C:\WINDOWS\system32>
那么PS命令输出似乎没有直接指向CMD STDOUT输出?那么我是否必须将 PS 命令的输出通过管道传输到另一个字符串变量中,然后将该变量分配给我的 pfpathset 变量?还是我必须使用 ps 脚本来执行此操作?
对不起,如果这是一个基本问题,但我是一个 powershell 新手,所以任何帮助将不胜感激。
感谢你在期待
解决方案
类似于将命令输出分配给批处理文件中的变量。由于括号,您需要双引号。
在 .bat 文件中放入 %%i 而不是 %i。
for /f %i in ('powershell "(Get-Command notepad).FileVersionInfo.FileVersion"') do set output=%i
echo %output%
10.0.19041.1
推荐阅读
- css - 更改 Switch Material UI 的颜色
- python - Python:我无法访问子列表中的单个元素。整个子列表显示为单个元素
- html - Bootstrap 4:防止向右移动的列(在 min-width:1200px 上使用浮动)将另一列向下推
- node.js - 加密/散列数据 GET 会捕获什么?
- selenium - 如何使用 gocolly twocaptcha 和 selenium 绕过重新验证码
- javascript - Bootstrap 5 - 以编程方式打开导航选项卡
- ios - 是否可以在 NSTimer 到达指定时间之前停止它?
- reactjs - 文本字段在表格 ReactJs 中无法正常工作
- html - 引导(AdminLTE)文件上传向导未在复选框中显示上传的文件名
- javascript - 如何调用另一个组件函数?