[решено] Показать имена всех EXE файлов в папке

Аватара пользователя
Centrinar

[решено] Показать имена всех EXE файлов в папке

Сообщение Centrinar »

Как показать имена всех EXE файлов в папке?



СПАСИБО!
Аватара пользователя
Centrinar

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Centrinar »

Проблема если скрипт запускать с Флешки, он после @ScriptDir ставит еще одну "\" т.е. я указываю $aReturn = _FileCMDSearch(@ScriptDir & "\exefiles\, "*.exe") в итоге он пишет: D:\\exefiles\...

Как решить данную проблему?
Аватара пользователя
Centrinar

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Centrinar »

Я запутался, а как сделать чтобы он не массив отображал а записал названия EXE в INI
Аватара пользователя
Creat0R

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Creat0R »

Цитата:



Как показать имена всех EXE файлов в папке?



Включая подпапки?



Код: Выделить всё

#include <Array.au3>
$aReturn = _FileCMDSearch(@ScriptDir, "*.exe")
_ArrayDisplay($aReturn)
;$iFlag = 0 - Files and folders (default)
;$iFlag = 1 - Only files
;$iFlag = 2 - Only folders
Func _FileCMDSearch($sPath, $sFileMask, $iFlag = 0)
    Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib
    Switch $iFlag
        Case 1
            $sAttrib = ' /A-D'
        Case 2
            $sAttrib = ' /AD'
        Case Else
            $sAttrib = ' /A'
    EndSwitch
    $sOut = StringToBinary('0' & @CRLF, 2)
    $aMasks = StringSplit($sFileMask, ';')
    For $i = 1 To $aMasks[0]
        $hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '" /S /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
        While 1
            $sRead = StdoutRead($hDir, False, True)
            If @error Then
                ExitLoop
            EndIf
            If $sRead <> "" Then
                $sOut &= $sRead
            EndIf
        Wend
    Next
    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
    If @error Or UBound($aOut) < 2 Then
        Return SetError(1)
    EndIf
    $aOut[0] = UBound($aOut)-1
    Return $aOut
EndFunc
Аватара пользователя
Centrinar

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Centrinar »

Цитата Centrinar:



как сделать чтобы он не массив отображал а записал названия EXE в INI
[решено] Показать имена всех EXE файлов в папке




См. в справке функций IniRead*.
Аватара пользователя
Creat0R

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Creat0R »

IniWrite ты имел ввиду? А как инфу с массива считать?
Аватара пользователя
Centrinar

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Centrinar »

IniWrite ты имел ввиду? А как инфу с массива считать?
Аватара пользователя
Creat0R

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Creat0R »

Цитата:



IniWrite ты имел ввиду?



Я кажется написал IniRead.

А имел я в виду конкретно IniReadSection, которая прочитает секцию Ini в массив, таким образом можно отобразить содержимое Ini в _ArrayDisplay. Это ведь надо? Так по крайней мере я понял с предложения:


Цитата:



как сделать чтобы он не массив отображал а записал названия EXE в INI



хотя есть подозрение что нужно как раз наоборот (записать в Ini содержимое полученного массива с результатом поиска Exe файлов).
Аватара пользователя
Centrinar

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение Centrinar »

Creat0R - извини за мои глупые вопросы. Сам знаешь что в AutoIt я новенький, спасибо за твою помощь! Я имел ввиду
Цитата:



записать в Ini содержимое полученного массива с результатом поиска Exe файлов
Аватара пользователя
kaster

Re: [решено] Показать имена всех EXE файлов в папке

Сообщение kaster »

Цитата Centrinar:



записать в Ini содержимое полученного массива с результатом поиска Exe файлов
[решено] Показать имена всех EXE файлов в папке




Как то так:



Код:

Код: Выделить всё

$aReturn = _FileCMDSearch(@ScriptDir, "*.exe")
For $i = 1 To UBound($aReturn)-1
    IniWrite("file.ini", "Exe Section", $i, $aReturn[$i])
Next
Ответить

Вернуться в «AutoIt»