首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将powershell脚本中的多个值返回到调用它的批处理文件?

如何将powershell脚本中的多个值返回到调用它的批处理文件?
EN

Stack Overflow用户
提问于 2019-06-13 05:46:58
回答 3查看 1.1K关注 0票数 1

如何将powershell脚本中的多个值返回到调用它的批处理文件?

我有一个返回多个值的powershell脚本。我想从批处理文件中调用它,并将每个单独的值放入批处理文件中的一个单独变量中。

只能返回一个值

powershell代码(pstest.ps1):

代码语言:javascript
运行
复制
 $p1=11
 $p2=22
 $p3=33
 exit

批处理文件:

代码语言:javascript
运行
复制
 powershell .\pstest.ps1
 :: now I'd like to get those 3 returned values 
 :: into 3 individual variables so that I can do something like this:
 @echo First is %p1%, Second is %p2%, Third is %p3%

因此,它应该显示以下内容:

代码语言:javascript
运行
复制
 First is 11, Second is 22, Third is 33
EN

回答 3

Stack Overflow用户

发布于 2019-06-14 00:00:41

以完全相同的方式从任何应用程序获得多个值:每行一个值……

代码语言:javascript
运行
复制
@echo off
setlocal EnableDelayedExpansion

set "i=0"
for /F "delims=" %%a in ('powershell "$p1=11; $p2=22; $p3=33; $p1; $p2; $p3"') do (
   set /A i+=1
   set "p!i!=%%a"
)

echo First is %p1%, Second is %p2%, Third is %p3%

我建议您阅读有关数组的this answer ...

票数 2
EN

Stack Overflow用户

发布于 2019-06-13 06:48:41

除了使用环境变量之外,您还可以尝试使用SachaDee的答案here进行如下操作

PS:

代码语言:javascript
运行
复制
function get-multiplereturnvalues {
  "11"
  "22"
  "33"
}
get-multiplereturnvalues

批处理/命令行

代码语言:javascript
运行
复制
@echo First is %p1%, Second is %p2%, Third is %p3%
for /f "delims=" %%a in ('powershell .\multi.ps1') do @echo "$Value=%%a"

以下哪项输出:

代码语言:javascript
运行
复制
"$Value=11"
"$Value=22"
"$Value=33"
票数 0
EN

Stack Overflow用户

发布于 2019-06-13 06:49:20

在PowerShell脚本中,我将创建一个包含结果的临时文件。在批处理文件中,在调用PowerShell脚本之后,我将使用/F解析该临时文件,以获得结果并根据需要设置环境变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56570795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档