cmd.exe: Можно ли работать с результатом возвращаемый прогой?

0000

То есть есть прога, которая возвращает число (ну или строку: прога моя потому могу что надо воткнуть).
Можно ли в bat файле какой-нить переменной присвоить результат выполнения этой проги и потом использовать его?, напр. что-то в духе
set I=MyProg.exe

artimon


C:\Documents and Settings\>for /f "delims=" %i in ('dir /b') do @echo %i
Desktop
Favorites
PUTTY.RND
Start Menu
WINDOWS

Dasar

Число прога возвращает через консоль или через код возврата?

0000

Через код возврата.

0000

А что это?

maggi14

%errorlevel%

Dasar

> Через код возврата.

MyProg.exe
set i=%ErrorLevel%

0000

Не пашет. Наверно это из-за Delphi
Вообще то делаю следующим образом
в батнике
rundll32 mydll.dll tst
set i=%ErrorLevel%
set i
Код dll
library MyDLL;
function test(MyWnd:Cardinal; hInstance: Cardinal;Line: PChar;A: dword): Integer; stdcall; export;
begin
Result:=12;
end;
exports test name 'test';
end.

maggi14

и что ты хочешь получить? В благоприятном случае ты должен получить 0, если я ничего не путаю. Патамушта рандлл завершается корректно.

0000

То есть в консоль возвратить ничего не удастся?

maggi14

пачиму? напиши ехешник

0000

А как на Делфи написать ехе котрый будет что то возвращать?
там же
program myprog;
begin
end.

maggi14

перед End. пиши exit(i);
Или halt(i); - это даже лучше.

0000

exit не работает. halt работает. Пасиб
АЕ! Если в коде экспортируемой ф-ии добавить Halt то работает [возвращает] и dll
Оставить комментарий
Имя или ник:
Комментарий: