|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » текстовый файл с именами всех файлов в папке |
|
|
текстовый файл с именами всех файлов в папке
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать Помогите пожалуйста составить код, который перечисляет в текстовом файле все файлы указанных папок.
То есть папок например может быть указано и три и семь. |
|
Отправлено: 10:11, 03-02-2012 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Цитата socap:
|
|
Отправлено: 11:20, 03-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать madmasles, указанных в самом скрипте.
Если можно, то пример с учетом подпапок и без учета. То есть я например указываю $Dir1 с учетом, $Dir2 без учета. Круто было бы если полный путь! |
Отправлено: 11:48, 03-02-2012 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать socap,
$Dir = @ScriptDir & '\AutoIt' $aFilesAll = _FileSearch($Dir, '*', 1);с учетом подпапок If @error Then MsgBox(16, 'Error', '_FileSearch') Exit EndIf $sText = 'С учетом подпапок' & @CRLF & 'Папка: ' & $Dir & @CRLF & 'Всего файлов: ' & $aFilesAll[0] & _ @CRLF & 'На ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @HOUR & ':' & @MIN & @CRLF For $i = 1 To $aFilesAll[0] $sText &= $i & '. ' & $aFilesAll[$i] & @CRLF Next $hFile = FileOpen(@ScriptDir & '\FilesAll.txt', 2) FileWrite($hFile, StringTrimRight($sText, 2)) FileClose($hFile) $aFiles = _FileSearch($Dir, '*', 1, 0);без учета подпапок If @error Then MsgBox(16, 'Error', '_FileSearch') Exit EndIf $sText = 'Без учета подпапок' & @CRLF & 'Папка: ' & $Dir & @CRLF & 'Всего файлов: ' & $aFiles[0] & _ @CRLF & 'На ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @HOUR & ':' & @MIN & @CRLF For $i = 1 To $aFiles[0] $sText &= $i & '. ' & $Dir & '\' & $aFiles[$i] & @CRLF Next $hFile = FileOpen(@ScriptDir & '\Files.txt', 2) FileWrite($hFile, StringTrimRight($sText, 2)) FileClose($hFile) Func _FileSearch($sPath, $sFileMask = "*", $iFlag = 0, $iSubDir = 1, $iSort = 0) ;CreatoR; http://autoit-script.ru/index.php/topic,8266.msg55775 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 1 $sRead = StdoutRead($hDir, False, True) If @error Then ExitLoop EndIf If $sRead <> "" Then $sOut &= $sRead EndIf Sleep(10) 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 ;==>_FileSearch |
Отправлено: 12:57, 03-02-2012 | #4 |
Ветеран Сообщения: 1025
|
Профиль | Отправить PM | Цитировать Цитата socap:
|
||
------- Отправлено: 21:08, 03-02-2012 | #5 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Спасибо! А как сделать так чтобы можно было ввести в скрипт например имя нескольких папок и все они были в этом текстовом файле?
|
Отправлено: 03:24, 04-02-2012 | #6 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Вот так еще можно
#include <File.au3> #include <RecFileListToArray.au3> Global $Dir[20] $Dir[0] = "c:\Program Files\AutoIt3" $Dir[1] = "c:\Windows" $Dir[2] = "c:\Temp" For $i = 0 To UBound($Dir) - 1 If $Dir[$i] = "" Then ContinueLoop _Search($Dir[$i], 0) _Search($Dir[$i], 1) Next Func _Search($Dir, $iRecursion) $aFiles = _RecFileListToArray($Dir, "*.*", 1, $iRecursion, 0, 2, "", "") If Not IsArray($aFiles) Then MsgBox(16, "Error", "Invalid input path"& @CRLF & $Dir) Return Else If $iRecursion = 0 Then $hFile = FileOpen(@ScriptDir & "\NoRecursion.txt",1) Else $hFile = FileOpen(@ScriptDir & "\Recursion.txt",1) EndIf _FileWriteFromArray($hFile, $aFiles, 1) FileClose($hFile) EndIf EndFunc |
Последний раз редактировалось Dm666, 04-02-2012 в 19:48. Причина: А где здесь тег [autoit]?... Отправлено: 04:07, 04-02-2012 | #7 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать socap, до кучи
Только надо скачать это и положить файл FileOperations.au3 в папку "C:\Program Files\AutoIt3\Include" |
Отправлено: 12:14, 16-02-2012 | #8 |
Ветеран Сообщения: 1025
|
Профиль | Отправить PM | Цитировать Так чем вам не нравится использование dir /B?
|
------- Отправлено: 12:15, 16-02-2012 | #9 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать apozlevich, это не труЪ
|
Отправлено: 12:34, 16-02-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Объединение всех файлов в папке | AlexVong | Скриптовые языки администрирования Windows | 5 | 24-06-2015 23:34 | |
Прочие - Как вывести список папок и файлов в текстовый файл? | Vowan | Программное обеспечение Windows | 15 | 23-11-2013 15:29 | |
CMD/BAT - [решено] как через батник получить список всех служб и их состояние в текстовый файл? | Pozia | Скриптовые языки администрирования Windows | 3 | 22-11-2011 00:11 | |
CMD/BAT - [решено] Как имена файлов расположенных в одной папке записать в текстовый файл? | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 12-05-2009 21:44 | |
[решено] Импорт всех reg-файлов в папке? | s127d | Автоматическая установка Windows 2000/XP/2003 | 2 | 24-05-2008 05:11 |
|