Имя пользователя:
Пароль:
 

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

Ветеран


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

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


Нужна помощь в выявлении конфликта между двумя блоками в bat. Каждый блок по отдельности работает как надо, однако при их объединении второй блок не срабатывает.
Не обработка второго блока происходит в случае принудительного завершения процесса winword.exe первым блоком.
читать дальше »

Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion
 
set iSumT=0
 
set "dr=%USERPROFILE%\Recent"& call :Calc "%dr%" lnk
set "dr=%USERPROFILE%\Application Data\Microsoft\Office\Последние файлы"& call :Calc "%dr%" lnk
set "dr=%USERPROFILE%\Local Settings\Temporary Internet Files\Content.MSO"& call :Calc "%dr%" *
set "dr=%USERPROFILE%\Local Settings\Temporary Internet Files\Content.Word"& call :Calc "%dr%" *
Set /A Cnt +=%iSumT%
goto :x1
 
:Calc
for /f "delims=*" %%i in ('dir /b/a-d "%dr%\*.%2" 2^>nul') do (
set "bg=%%i"
if "!bg:~0,1!"=="~" (
    >"%temp%\MsgBox.vbs" echo WScript.Quit^(MsgBox^(WScript.Arguments^(1^) ^& vbCrLf ^& WScript.Arguments^(2^) ^& vbCrLf ^& vbCrLf ^& WScript.Arguments^(3^), vbYesNo+vbDefaultButton1,WScript.Arguments^(0^)^)^)
    tasklist 2>nul|find /i "winword.exe" 1>nul 2>nul && (WScript "%temp%\MsgBox.vbs" "Внимание" "     Для успешной работы скрипта" "закройте все документы Word" "            Документы закрыты?")
    tasklist 2>nul|find /i "winword.exe" 1>nul 2>nul && (WScript "%temp%\MsgBox.vbs" "Внимание" "                           Документы Word не закрыты^!" "После нажатия на кнопку они будут закрыты принудительно" "                                         Продолжить?"& taskkill /F /IM winword.exe 1>nul 2>nul)
        )
    del /q "%temp%\MsgBox.vbs" 2>nul
    if exist "%dr%\!bg!" (              
        for %%a in ("%dr%\!bg!" ) do (
                 set /a iSumT += %%~za
                 del /f/q %%a 2>nul
                 ))
    )
exit /b 0
 
rem -------------------------------------------------------------------------
 
:x1
set dirsize4=0
For /F "UseBackQ" %%d In (
`WMIC LogicalDisk Where "FileSystem LIKE '_%%'" Get Caption^|Find ":"`) do (
 Set "DirProg=%%d\RECYCLER"& Set "flag=0"
 If EXIST !DirProg! (For /F "Skip=4 Tokens=1-3" %%a In ('DIR/-C/S/A:-D "!DirProg!"2^>Nul') Do (
      If !flag!==1 Set dirsize4=%%c
      If "%%b"=="файлов:" (Set flag=1) Else Set flag=0)
 )
   )
Set rst=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches
REG Add "%rst%\Recycle Bin" /v StateFlags0001 /t REG_DWORD /d 2 /f >nul
REG Delete "%rst%\Compress old files" /f 2>nul
Cleanmgr /sagerun:1
 
echo Cnt=%Cnt%
echo dirsize4=%dirsize4%
Set /A Cnt +=dirsize4
 
echo  summ_Cnt=%Cnt%
pause

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


Отправлено: 11:30, 28-11-2011 | #56