Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


При открытом документе Word очищаю содержимое папки Content.Word. Естественно, появляется ошибка удаления. Пытаюсь "выловить" сообщение в командной строке, и в случае его наличия вывести сообщение.
Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion

set "dr=%USERPROFILE%\Local Settings\Temporary Internet Files\Content.Word"& call :Calc "%dr%" *

pause

:Calc
for /f "delims=*" %%i in ('dir /b/a-d "%dr%\*.%2" 2^>nul') do (
for %%a in ("%dr%\%%i") do (
           
del /f/q %%a ||(
	findstr.exe /r /c:"Процесс не может получить доступ к файлу, так как этот файл занят другим процессом." && (
		echo msgbox "Закройте файл!">"%temp%\msg.vbs" 
            %temp%\msg.vbs 
           del %temp%\msg.vbs 
                	))
))
exit /b 0
подскажите, как поправить скрипт?
***
Upd: решил немного по-другому
Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion
 
set "dr=%USERPROFILE%\Local Settings\Temporary Internet Files\Content.Word"& call :Calc "%dr%" *
 pause
 
:Calc
for /f "delims=*" %%i in ('dir /b/a-d "%dr%\*.%2" 2^>nul') do (
set "bg=%%i"
if "!bg:~0,1!"=="~" (
         echo msgbox "Закройте документ Word!">"%temp%\msg.vbs" 
         %temp%\msg.vbs 
         del %temp%\msg.vbs
         Goto :Calc
) else (
for %%a in ("%dr%\%%i") do (
del /f/q %%a
)))

Последний раз редактировалось sov44, 18-11-2011 в 17:38.


Отправлено: 19:11, 17-11-2011 | #6