Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Создание пустышек (http://forum.oszone.net/showthread.php?t=167730)

Pozia 18-02-2010 01:20 1349964

Создание пустышек
 
Имеется папка с подпапками и кучей файлов формата .jpg в них. Мне нужно заменить их одноименными пустышками. Вручную это работы на пол дня. Подкиньте пожалуйста скрипт с выполнением этой рутинной работы. Спасибо

madmasles 18-02-2010 01:35 1349967

Pozia,
У меня так получилось:
Код:

$aReturn = _FileSearch("Папка", '*.jpg')

For $i = 1 To UBound($aReturn) - 1
    $hFile = FileOpen($aReturn[$i], 2)
    FileClose($hFile)
Next

Func
_FileSearch($sPath, $sFileMask)
    Local $sOut = StringToBinary("0" & @CRLF, 2), $aOut
    Local $hDir = Run(@ComSpec & ' /U/C DIR "' & $sPath & '\' & $sFileMask & '" /S/B/A-D', @SystemDir, @SW_HIDE, 6)

    While 1
        $sOut &= StdoutRead($hDir, False, True)
        If @error Then ExitLoop
    WEnd


    $aOut = StringRegExp(BinaryToString($sOut, 2), "[^\r\n]+", 3)
    If @error Then Return SetError(1)

    $aOut[0] = UBound($aOut) - 1
    Return $aOut
EndFunc  ;==>_FileSearch


Creat0R 18-02-2010 01:42 1349973

Цитата:

Цитата madmasles
FileOpen($aReturn[$i], 2)
FileClose($aReturn[$i]) »

Неправильно это...

FileClose не принимает имя файла, ей нужен дескриптер возвращаемый функцией FileClose:

Код:

For $i = 1 To UBound($aReturn) - 1
    $hFile = FileOpen($aReturn[$i], 2)
    FileClose($hFile)
Next

иначе у тебя в скрипте происходит постоянное открытие файла, без необходимого закрытия.

madmasles 18-02-2010 01:52 1349976

Creat0R,
Не внимательно я справку читал :).
А как проверить, открыт файл или нет.
Я код исправил. FileDelete() тоже не нужен.

Creat0R 18-02-2010 02:03 1349982

Цитата:

Цитата madmasles
как проверить, открыт файл или нет »

Ещё внимательнее почитать справку ;)

Цитата:

Цитата madmasles
FileDelete() тоже не нужен »

А я его и не добавлял в куске кода что привёл в примере.

Pozia 18-02-2010 07:36 1350046

то то у меня ничего не работает

madmasles 18-02-2010 12:46 1350231

Pozia,
У меня работает.

Pozia 19-02-2010 00:30 1350735

madmasles, а вместо "Папка" нужно свое имя указывать или как? Не выходит ничего. Ложу скрипт рядом с кучей jpg, запускаю и ноль

madmasles 19-02-2010 00:39 1350739

Pozia,
Вместо "Папка" надо полный путь к этой папке указать, т.е.
Код:

$aReturn = _FileSearch(@DesktopDir & "\My Folder", '*.jpg')
....

Будет обнулять все файлы с расширением .jpg в папке My Folder, которая находится на рабочем столе, и во всех ее подпапках.
Или указать
Код:

$aReturn = _FileSearch(@ScriptDir & "\My Folder", '*.jpg')
....

И положить скрипт рядом с папкой My Folder, т.е. в одну папку и скрипт, и My Folder. Вместо My Folder укажите Вашу папку с файлами .jpg.


Время: 10:07.

Время: 10:07.
© OSzone.net 2001-