在命令变量中捕获c#console应用程序字符串

时间:2018-04-05 12:48:56

标签: batch-file variables command

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

2 个答案:

答案 0 :(得分:2)

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

Console.WriteLine(YourVar);

然后在批处理文件中:

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

echo result=%$var%

修改:

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

2种方式:

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%

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

答案 1 :(得分:0)

我不确定我是否完全理解这个问题,但这个stackoverflow帖子Set via C# Powershell Variable可能就是您之后的问题?