|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Поиск каталогов |
|
|
[решено] Поиск каталогов
|
Ветеран Сообщения: 753 |
Профиль | Отправить PM | Цитировать Здравствуйте ! Погуглив так и не нашёл ответа или примера как возможно найти папку 5DEL во всех подкаталогах папки TEST, глубина папки TEST неизвестна, и удалить все найденные каталоги 5DEL.
Заранее спс. |
|
------- Отправлено: 13:24, 26-12-2012 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата TERMINAL:
А также есть уже тема на форуме. |
|
------- Отправлено: 13:54, 26-12-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Creat0R, Как бы нашёл скрипт
можно переделать и будет поиск каталогов, но не могу добиться глубины поиска папок в каталоге. |
------- Отправлено: 17:18, 26-12-2012 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 18:24, 26-12-2012 | #4 |
Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Creat0R, Судьбу испытывал и переходил по ссылке, но там же опять поиск файлов, мне файлы не нужны-нужны сами папки
Реализовать поиск папок я так и не смог. |
|
------- Отправлено: 10:42, 27-12-2012 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата TERMINAL:
$aReturn = _FileSearch('C:\Test', "\\5DEL$", 0) _ArrayDisplay($aReturn) #include <Array.au3> $aReturn = _FileDirList('C:\Test', "5DEL", 2) _ArrayDisplay($aReturn) Func _FileDirList($sPath, $sFileMask = "*", $iFlag = 0, $iSubDir = 1, $iSort = 0) Local $sOutBin, $sOut, $aOut, $aMasks, $sRead, $hDir, $sAttrib, $sFiles If Not StringInStr(FileGetAttrib($sPath), "D") Then Return SetError(1, 0, 0) EndIf If $iSubDir = 1 Then $sAttrib &= ' /S' EndIf If $iSort = 1 Then $sAttrib &= ' /O:N' EndIf Switch $iFlag Case 1 $sAttrib &= ' /A-D' Case 2 $sAttrib &= ' /AD' Case Else $sAttrib &= ' /A' EndSwitch $sOut = StringToBinary('0' & @CRLF, 2) $sPath = StringRegExpReplace($sPath, '\\+$', '') $sFileMask = StringRegExpReplace($sFileMask, '^;+|;+$', '') $sFileMask = StringRegExpReplace($sFileMask, ';{2,}', ';') $aMasks = StringSplit($sFileMask, ';') For $i = 1 To $aMasks[0] If StringStripWS($aMasks[$i], 8) = "" Then ContinueLoop EndIf $sFiles &= '"' & $sPath & '\' & $aMasks[$i] & '"' If $i < $aMasks[0] Then $sFiles &= ';' EndIf Next $hDir = Run(@ComSpec & ' /U /C DIR ' & $sFiles & ' /B' & $sAttrib, @SystemDir, @SW_HIDE, 6) While ProcessExists($hDir) $sRead = StdoutRead($hDir, False, True) If @error Then ExitLoop EndIf If $sRead <> "" Then $sOut &= $sRead EndIf Wend $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3) If @error Or UBound($aOut) < 2 Then Return SetError(2, 0, 0) EndIf $aOut[0] = UBound($aOut)-1 Return $aOut EndFunc |
|
------- Отправлено: 15:44, 27-12-2012 | #6 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Creat0R, А как-то возможно на диске найти пустые каталоги или подкаталоги и удалить их?
И такой ещё вопросик- если известен путь С:\TEST02\Downloads\TMP\VIA\FORCED\5x86\new\viamraid64.cat то как возможно получить из него путь С:\TEST02\Downloads\TMP\VIA\FORCED\5x86\new ? (т.е. без самого файла) |
Последний раз редактировалось -TRM-, 11-01-2013 в 12:44. Отправлено: 11:50, 11-01-2013 | #7 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата -TRM-:
#include <Array.au3> #include <WinAPIEx.au3> Global $aRet, $iSuccess = 0, $iError = 0 $aRet = _FileDirList(@HomeDrive, '*', 2) _ArrayDisplay($aRet) For $i = 1 To $aRet[0] If _WinAPI_PathIsDirectoryEmpty($aRet[$i]) Then If DirRemove($aRet[$i]) Then $iSuccess += 1 Else $iError += 1 EndIf EndIf Next MsgBox(64, 'Info', StringFormat('All:\t%i\nDel:\t%i\nError:\t%i', $aRet[0], $iSuccess, $iError)) Func _FileDirList($sPath, $sFileMask = "*", $iFlag = 0, $iSubDir = 1, $iSort = 0) Local $sOutBin, $sOut, $aOut, $aMasks, $sRead, $hDir, $sAttrib, $sFiles If Not StringInStr(FileGetAttrib($sPath), "D") Then Return SetError(1, 0, 0) EndIf If $iSubDir = 1 Then $sAttrib &= ' /S' EndIf If $iSort = 1 Then $sAttrib &= ' /O:N' EndIf Switch $iFlag Case 1 $sAttrib &= ' /A-D' Case 2 $sAttrib &= ' /AD' Case Else $sAttrib &= ' /A' EndSwitch $sOut = StringToBinary('0' & @CRLF, 2) $sPath = StringRegExpReplace($sPath, '\\+$', '') $sFileMask = StringRegExpReplace($sFileMask, '^;+|;+$', '') $sFileMask = StringRegExpReplace($sFileMask, ';{2,}', ';') $aMasks = StringSplit($sFileMask, ';') For $i = 1 To $aMasks[0] If StringStripWS($aMasks[$i], 8) = "" Then ContinueLoop EndIf $sFiles &= '"' & $sPath & '\' & $aMasks[$i] & '"' If $i < $aMasks[0] Then $sFiles &= ';' EndIf Next $hDir = Run(@ComSpec & ' /U /C DIR ' & $sFiles & ' /B' & $sAttrib, @SystemDir, @SW_HIDE, 6) While ProcessExists($hDir) $sRead = StdoutRead($hDir, False, True) If @error Then ExitLoop EndIf If $sRead <> "" Then $sOut &= $sRead EndIf WEnd $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3) If @error Or UBound($aOut) < 2 Then Return SetError(2, 0, 0) EndIf $aOut[0] = UBound($aOut) - 1 Return $aOut EndFunc ;==>_FileDirList |
|
Отправлено: 12:33, 11-01-2013 | #8 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать -TRM-,
_FO_SearchEmptyFolders Цитата -TRM-:
|
|
Последний раз редактировалось AZJIO, 11-01-2013 в 22:31. Отправлено: 17:58, 11-01-2013 | #9 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата -TRM-:
$sPath = @ScriptFullPath ConsoleWrite($sPath & @LF) ConsoleWrite(StringRegExpReplace($sPath, '\\[^\\]*$', '') & @LF) |
|
Последний раз редактировалось madmasles, 11-01-2013 в 22:53. Отправлено: 20:07, 11-01-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файла на разных дисках | Gawr33 | Скриптовые языки администрирования Windows | 11 | 23-04-2011 23:09 | |
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файлов на разных дисках | 4zz | Скриптовые языки администрирования Windows | 2 | 21-02-2011 16:07 | |
CMD/BAT - Синхронизация каталогов | Makzs | Скриптовые языки администрирования Windows | 4 | 03-11-2009 15:56 | |
Поиск скрытых каталогов на диске | fooms | Хочу все знать | 5 | 05-02-2004 09:56 | |
20-ка поисковиков и каталогов | Agent Comanche | Вебмастеру | 6 | 18-06-2003 01:52 |
|