【问题标题】:Capture c# console application string in command variable在命令变量中捕获 c# 控制台应用程序字符串
【发布时间】:2018-04-05 12:48:55
【问题描述】:

有什么方法可以从 c# 应用程序输出字符串值并将其捕获到 powershell 或命令变量中?我有一个运行 c# 应用程序的批处理命令作业。我知道我可以使用Environment.Exit()%ERRORLEVEL% 中捕获一个整数。我想要一个包含来自 c# 应用程序的字符串值的变量。 提前致谢,

【问题讨论】:

  • for /f "tokens=* delims=" %%# in ('csprogram.exe') do set "output=%%#"

标签: batch-file variables command


【解决方案1】:

如果在您的c# 代码中,您在console 中输出变量:

Console.WriteLine(YourVar);

然后在批处理文件中:

@echo off
for /f "delims=" %%a in ('your_c#_file.exe') do set "$var=%%a"

echo result=%$var%

编辑:

如果您有多个变量作为输出!

两种方式:

1:

 @echo off
 setlocal enabledelayedexpansion

 set /a $Count=1
 for /f "delims=" %%a in ('your_c#_file.exe') do 
   set "Var!$Count!=%%a"
   set/a $Count+=1
 )     

然后你可以使用:

echo %Var1%
echo %Var2%
...
echo %Varx%

2:

如果您可以直接从C# 代码中输出变量,那就更好了:

name=John
lastname=Doe

然后在batch文件中你可以直接set这样:

@echo off
for /f "delims=" %%a in ('your_c#_file.exe') do set %%a

然后就是:

echo %name%
echo %lastename%

变量将直接具有正确的名称!

【讨论】:

  • 如果从 C# 应用程序输出多个变量,这将如何工作?
  • 像冠军一样工作!你太棒了!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 2015-11-21
  • 2013-01-27
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多