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

如何在CMD中将PowerShell命令执行结果存入变量并调用

问题原因

你原来的写法不符合CMD的语法规则,有两处核心错误:

  • CMD设置变量无需加$前缀,set $path会把$识别为变量名的一部分,后续调用也无法通过%path%取到值;另外不建议直接用path作为变量名,会覆盖系统内置的PATH环境变量,导致其他命令无法正常执行。
  • CMD原生不支持直接将命令执行结果赋值给变量,必须借助for /f命令捕获命令输出。

正确写法

批处理文件(.bat/.cmd)中使用

@echo off
:: 捕获PowerShell返回的当前路径
for /f "delims=" %%i in ('powershell -Command "(Get-Location).Path"') do set "current_dir=%%i"
:: 输出验证结果
echo %current_dir%

直接在CMD交互窗口中使用

把双百分号改为单百分号即可:

for /f "delims=" %i in ('powershell -Command "(Get-Location).Path"') do set "current_dir=%i"
echo %current_dir%

补充说明

  • delims=参数的作用是禁用分隔符,避免路径中存在空格、特殊符号时被截断,保证返回完整路径。
  • PowerShell执行的命令需要用引号包裹,避免命令内的特殊符号被CMD提前解析导致执行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:57:01