Записать возвращаемое значение .net EXE в bat-файл - PullRequest
1 голос
/ 14 декабря 2011

В настоящее время я запускаю приложение EXE, которое вызывается из файла bat с некоторыми другими exe-файлами.То, что я пытаюсь сделать, это я хочу вернуть значение из EXE и передать его в другой EXE-файл в bat.Я изменил Main в моей консоли, чтобы он возвращал type как целое число, но не смог получить доступ к значению в Bat-файле, за исключением ERRORLEVEL, что я не хочу делать, поскольку это может стереть любые потенциальные ошибки.Если я использую ERRORLEVEL для захвата возвращаемого значения, например, произошла ошибка, и она возвращает целое число ошибки, как я могу различить целочисленное значение, которое я возвращаю, и это значение.Пожалуйста, дайте мне знать ваш вклад по этому вопросу.

@echo off
set PATH=%PATH%;C:\Scripts
Bat File:
TestConsoleApplication.exe
ECHO %ERRORLEVEL% -- Want to capture here return value of EXE dont want to do it using ERRORLEVEL

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Если ваш EXE-файл в настоящее время не использует стандартный вывод, вы можете просто записать результаты в стандартный вывод, где они могут быть получены родительским пакетным процессом.

Например, если ваш EXE-файл (myprog.exe)выведите

var1=my first value
var2=23

, затем этот простой сценарий можно использовать для запуска EXE, а также для захвата и сохранения результатов

for /f "delims=" %%a in ('myprog.exe') do set "%%a"

Даже если используется стандартный вывод, вы можете добавитьрезультаты выводятся таким образом, что вы можете анализировать значения, которые вам нужны в пакете.Но есть более простой способ, если stdout не удобен.

Сделайте, чтобы ваш EXE создал временный пакетный файл, который устанавливает значения.После завершения работы EXE ваш пакетный файл может вызвать временный пакетный файл, а затем удалить временный пакетный файл.

1 голос
/ 14 декабря 2011

Errorlevel будет иметь возвращаемое значение программы, которую вы запустили.Вы не можете указать, чтобы он не содержал возвращаемое значение программы.

Если вы беспокоитесь о других ошибках в другом месте вашего скрипта, вы можете проверить уровень ошибок в этих местах и ​​сохранить значение в другой переменной.или перейдите к определенной метке, которая обрабатывает эту ошибку.

...