Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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]


> и получаю все время 0


if 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.062 c
2-1270885260
roman2
2010-04-10 11:41
2010.08.27
Координаты точки


15-1270060612
Masolin_gazin
2010-03-31 22:36
2010.08.27
Уважаемые форумчане помогите с прогой!


11-1220147198
Jon
2008-08-31 05:46
2010.08.27
Audio Input Monitor


15-1264762579
И Павел
2010-01-29 13:56
2010.08.27
Стоит ли превращать сайт в файлообменник?


2-1274855695
Rembo
2010-05-26 10:34
2010.08.27
Картинку из файла уменьшить и поместить в tbitmap





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский