#NoTrayIcon Global $sTmpFile = EnvGet('Temp') & '\' & @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC Global $sArchive = 'path\to\archive.ext' Global $sFolderName = 'трэш-и-угар' Global $hFile, $sFile, $aFile, $i, $j, $sTmp, $aTmp, $iF = 0, $sMsg = 'не найдена' ;Запускаем с chcp 65001, чтобы без сюрпризов получить файл в UTF-8 RunWait('cmd /c chcp 65001 && "' @ScriptDir & '\7z.exe l "' & $sArchive & '" > "' & $sTmpFile & '"', '', @SW_HIDE) ;Открываем и читаем файл вывода $hFile = FileOpen($sTmpFile, 256) If $hFile = -1 Then MsgBox(48 + 4096, 'Test - Ошибка', 'Не удалось открыть файл "' & $sTmpFile & '"') Exit EndIf $sFile = FileRead($hFile) FileClose($hFile) ;Удаляем файл вывода FileDelete($sTmpFile) ;Режем прочитанное на строки If StringInStr($sFile, @CRLF, 1) Then $aFile = StringSplit($sFile, @CRLF, 1) Else $aFile = StringSplit($sFile, @CR & @LF) EndIf ;Разбираем строки For $i = 1 To $aFile[0] ;Если нашли каталог... If StringInStr($aFile[$i], ' D.... ', 1) Then ;отрезаем 53 символа слева, до имени $sTmp = StringTrimLeft($aFile[$i], 53) ;режем строку пути на папки $aTmp = StringSplit($sTmp, '/\') ;и ищем нужную For $j = 1 To $aTmp[0] If StringLower($aTmp[$j]) == StringLower($sFolderName) Then $iF = 1 ExitLoop EndIf Next EndIf If $iF = 1 Then ExitLoop Next If $iF = 1 Then $sMsg = 'найдена' MsgBox(64 + 4096, 'Test', 'Папка "' & $sFolderName & '" ' & $sMsg & '.') |