Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   if exists почему-то true (http://forum.oszone.net/showthread.php?t=243500)

apozlevich 27-09-2012 17:20 1995679

if exists почему-то true
 
Код:

@echo off

...

:wget
        Update\wget.exe -q -O "%~2" --ignore-case --no-cache --user-agent="%UserAgent%" "%~1" 2>nul
exit /b

:update
        echo Downloading %1...
        call :wget "%UpdateHost%/%1.upd" "%temp%\%1.upd"
        if exist "%temp%\%1.upd" (
                Update\7zr.exe e -y -- %temp%\%1.upd >nul
                if errorlevel 1 echo ERROR: Can't update %1: file locked by application?
        ) else (
                echo ERROR: Can't download file. File missing on server or your have no connection.
        )
exit /b

Вот при выполнении :update если файла на сервере нет, почему-то все равно выполняется код if exists так, как будто файл есть. Файла нет, я проверял :)

UPD: Пока писал этот пост, вспомнил, что иногда после выполения exit выполняется следующая строка. Происходит это ровно каждое второе выполнение, без отклонений. Нашел в том же коде еще один похожий баг.

Foreigner 27-09-2012 19:47 1995736

apozlevich, Убери кавычки от параметров %1 и %2 в метке :wget. Ты и так передаешь параметры уже в кавычках.
И вообще не ясно зачем "wget" раньше "update"

apozlevich 27-09-2012 20:55 1995777

Foreigner, добавил ~, так как имел несколько проблем с парсингом переменных и с тех пор предпочитаю брать в кавычки чуть более, чем все :)

Iska 28-09-2012 17:30 1996232

apozlevich, и это — правильно.

apozlevich 28-09-2012 20:43 1996322

Блин, а с сабжем-то что? Я уже на AutoIt почти переписал (правда там внезапно захотелось больше возможностей :) )

Iska 29-09-2012 00:27 1996431

apozlevich, а что можно сказать? Вы приводите неполный код, не описываете пример. который можно воспроизвести и получить (возможно) ту же ошибку, что и у Вас.

apozlevich 29-09-2012 08:32 1996481

Iska, ну вот у меня получается такой баг даже если просто вместо многоточия вставить call :wget %КакойНибудьСорц% %temp%\%КакойНибудьФайл%. Кстати, в основном коде обработка идет в цикле.

Появилась идея - сохранять не в %temp%. Доберусь до кода - опробую.


Время: 02:08.

Время: 02:08.
© OSzone.net 2001-