apozlevich
27-09-2012, 17:20
@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 выполняется следующая строка. Происходит это ровно каждое второе выполнение, без отклонений. Нашел в том же коде еще один похожий баг.
...
: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 выполняется следующая строка. Происходит это ровно каждое второе выполнение, без отклонений. Нашел в том же коде еще один похожий баг.