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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как отследить ERRORLEVEL, если файл не удаляется (http://forum.oszone.net/showthread.php?t=210821)

BigBoo 09-07-2011 13:13 1710080

Как отследить ERRORLEVEL, если файл не удаляется
 
Простой пример:
Код:

DEL /q 1.mp3
ECHO %ERRORLEVEL%

Причём если файл удаляется ERRORLEVEL=0, и если не удаляется (песня проигрывается), тоже ERRORLEVEL=0.

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

Foreigner 09-07-2011 18:56 1710220

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 1710327

Цитата:

Цитата Foreigner
Этот баг (?) с хвостом. »

Отвалилось, вроде бы, в XP.

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

BigBoo 13-07-2011 12:06 1712402

Цитата:

Цитата Foreigner
Этот баг (?) с хвостом »

Что здесь имеется ввиду?

Foreigner 13-07-2011 19:27 1712659

Цитата:

Цитата BigBoo
Что здесь имеется ввиду? »

То что del не возвращал корректный errorlevel еще в NT, потом починили в w2k и снова поломали в XP =)


Время: 07:50.

Время: 07:50.
© OSzone.net 2001-