Как отследить ERRORLEVEL, если файл не удаляется
Простой пример:
Код:
DEL /q 1.mp3
ECHO %ERRORLEVEL%
Причём если файл удаляется ERRORLEVEL=0, и если не удаляется (песня проигрывается), тоже ERRORLEVEL=0.
Почему ERRORLEVEL не отслеживает, удалился ли файл? Неужели только IF EXIST и почему не срабатывает ERRORLEVEL?
|
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
|
Цитата:
Цитата Foreigner
Этот баг (?) с хвостом. »
|
Отвалилось, вроде бы, в XP.
«if exist» мне кажется, лучше. Ибо, скажем, файла может и вовсе не быть (я не про данный случай, а вообще).
|
Цитата:
Цитата BigBoo
Что здесь имеется ввиду? »
|
То что del не возвращал корректный errorlevel еще в NT, потом починили в w2k и снова поломали в XP =)
|
Время: 12:31.
© OSzone.net 2001-