![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возврат переменной [D5, XP]
Loki3d © (2010-02-05 17:38:00)есть программа
program Project1;
{$APPTYPE CONSOLE}
Uses
windows,SysUtils;
{$R *.RES}
begin
ExitCode:=length(paramStr(1));
end.
она должна возвращать длинну строки.
Я использую программу в BAT файле
for /F "usebackq tokens=*" %%a in (Filename) do (
Project1.exe %%a
echo err-%ErrorLevel%
)
и получаю все время 0
если же в BAT файле я просто вызываю программу и передаю ей значение переменной
set aa=11111111111111
Project1.exe %aa%
echo err-%ErrorLevel%
то всё работает
может ктото сможет пояснить, почему так происходит?
может можно как то иначе получить результат работы программы для дальнейшего использования его в BAT скрипте?
Loki3d (2010-02-08 11:27:00) [1]спасибо Дмитрий С
пожалуй так и сделаю, как ты предложил.. буду обрабатывать результат через Writeln раз иначе без шансов.
Дмитрий С (2010-02-06 18:11:00) [2]Для твоего варианта, кстати, прокатывает так:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "usebackq tokens=*" %%a in (test.bat) do (
GetLength.exe "%%a"
echo Length of %%a is !ErrorLevel!
)
endlocal
Дмитрий С (2010-02-06 17:53:00) [3]Delphi:
program GetLength;
{$APPTYPE CONSOLE}
uses
Windows;
begin
Writeln(Length(ParamStr(1)));
end.
BAT:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "usebackq tokens=*" %%a in (test.bat) do (
for /f "usebackq" %%x in (`GetLength.exe "%%a"`) do set ALength=%%x
echo Length of %%a is !ALength!
)
endlocal
Интересно, почему такая конструкция не прокатывает для установки переменной окружения из вывода:
echo testvalue|set /p testkey=
Демо (2010-02-06 04:24:00) [4]PS.
http://www.robvanderwoude.com/errorlevel.php
Демо (2010-02-06 04:18:00) [5]
> и получаю все время 0
if errorlevel 5 ...
if errorlevel 4 ...
if errorlevel 3 ...
if errorlevel 2 ...
...
Loki3d (2010-02-05 23:01:00) [6]спасибо! капитан очевидность.
Ганя (2010-02-05 19:28:00) [7]следовательно, проблема не в программе
Loki3d (2010-02-05 17:47:00) [8]да, получает 100%
и потом
в случае вызова проги в BAT вне "цикла" For
все же работает!
MBo (2010-02-05 17:42:00) [9]проверил, что программа в первом случае действительно получает параметр?(выводом writeln, например)