You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理脚本中将PowerShell命令的返回值存储到变量?

解决批处理中调用PowerShell命令获取注册表项的问题

正确的批处理脚本

@echo off
set "VAR="
for /F "delims=" %%L in ('powershell -NoLogo -NoProfile "Get-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FeatureUsage\AppSwitched | Select-Object -ExpandProperty Property | Where-Object { $_ -Match 'steamapps\\common\\Among Us\\Among Us.exe' }"') do (
    set "VAR=%%L"
)
echo %VAR%

问题分析

原脚本存在三个核心错误:

  1. 循环变量格式错误:批处理脚本中for /F的循环变量必须使用双百分号(%%L),而非CMD命令行里的单百分号(%L)。
  2. 命令执行逻辑错误:将PowerShell命令存入变量后用(%psScript%)调用时,批处理会把变量内容当作文件名列表解析,而非要执行的命令。必须用单引号('命令内容')包裹命令,让for /F执行该命令并捕获输出。
  3. 多余转义符:原命令中的^是CMD命令行下转义管道符|用的,在批处理的单引号包裹模式下,无需转义|,可直接去掉。

内容的提问来源于stack exchange,提问作者sirzento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:35:31