Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизВозврат переменной Найти похожие ветки
← →
Loki3d (2010-02-05 17:38) [0]есть программа
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 скрипте?
← →
MBo © (2010-02-05 17:42) [1]проверил, что программа в первом случае действительно получает параметр?(выводом writeln, например)
← →
Loki3d (2010-02-05 17:47) [2]да, получает 100%
и потом
в случае вызова проги в BAT вне "цикла" For
все же работает!
← →
Ганя (2010-02-05 19:28) [3]следовательно, проблема не в программе
← →
Loki3d (2010-02-05 23:01) [4]спасибо! капитан очевидность.
← →
Демо © (2010-02-06 04:18) [5]
> и получаю все время 0if errorlevel 5 ...
if errorlevel 4 ...
if errorlevel 3 ...
if errorlevel 2 ...
...
← →
Демо © (2010-02-06 04:24) [6]PS.
http://www.robvanderwoude.com/errorlevel.php
← →
Дмитрий С © (2010-02-06 17:53) [7]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 18:11) [8]Для твоего варианта, кстати, прокатывает так:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "usebackq tokens=*" %%a in (test.bat) do (
GetLength.exe "%%a"
echo Length of %%a is !ErrorLevel!
)
endlocal
← →
Loki3d (2010-02-08 11:27) [9]спасибо Дмитрий С
пожалуй так и сделаю, как ты предложил.. буду обрабатывать результат через Writeln раз иначе без шансов.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.063 c