Войти

Показать полную графическую версию : [решено] Создание пустышек


Pozia
18-02-2010, 01:20
Имеется папка с подпапками и кучей файлов формата .jpg в них. Мне нужно заменить их одноименными пустышками. Вручную это работы на пол дня. Подкиньте пожалуйста скрипт с выполнением этой рутинной работы. Спасибо

madmasles
18-02-2010, 01:35
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
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
Creat0R,
Не внимательно я справку читал :).
А как проверить, открыт файл или нет.
Я код исправил. FileDelete() тоже не нужен.

Creat0R
18-02-2010, 02:03
как проверить, открыт файл или нет »
Ещё внимательнее почитать справку ;)

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

Pozia
18-02-2010, 07:36
то то у меня ничего не работает

madmasles
18-02-2010, 12:46
Pozia,
У меня работает.

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

madmasles
19-02-2010, 00:39
Pozia,
Вместо "Папка" надо полный путь к этой папке указать, т.е. $aReturn = _FileSearch(@DesktopDir & "\My Folder", '*.jpg')
....Будет обнулять все файлы с расширением .jpg в папке My Folder, которая находится на рабочем столе, и во всех ее подпапках.
Или указать $aReturn = _FileSearch(@ScriptDir & "\My Folder", '*.jpg')
.... И положить скрипт рядом с папкой My Folder, т.е. в одну папку и скрипт, и My Folder. Вместо My Folder укажите Вашу папку с файлами .jpg.




© OSzone.net 2001-2012