Войти

Показать полную графическую версию : [решено] Как отследить ERRORLEVEL, если файл не удаляется


BigBoo
09-07-2011, 13:13
Простой пример:DEL /q 1.mp3
ECHO %ERRORLEVEL%
Причём если файл удаляется ERRORLEVEL=0, и если не удаляется (песня проигрывается), тоже ERRORLEVEL=0.

Почему ERRORLEVEL не отслеживает, удалился ли файл? Неужели только IF EXIST и почему не срабатывает ERRORLEVEL?

Foreigner
09-07-2011, 18:56
BigBoo,
Этот баг (?) с хвостом. Если не удобно if exist, то можно решить так:

@echo off

2>&1 del /q file.ext | 1>nul findstr "."
:: errorlevel от findstr будет показывать 0 при неудачном удалении и 1 при успехе
echo %errorlevel%

:: или так, по результатам выполнения findstr
2>&1 del /q file.ext | 1>nul findstr "." && echo failure || echo success

Iska
09-07-2011, 23:08
Этот баг (?) с хвостом. »
Отвалилось, вроде бы, в XP.

«if exist» мне кажется, лучше. Ибо, скажем, файла может и вовсе не быть (я не про данный случай, а вообще).

BigBoo
13-07-2011, 12:06
Этот баг (?) с хвостом »
Что здесь имеется ввиду?

Foreigner
13-07-2011, 19:27
Что здесь имеется ввиду? »
То что del не возвращал корректный errorlevel еще в NT, потом починили в w2k и снова поломали в XP =)




© OSzone.net 2001-2012