Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


ZeroCrash, вариант для "правильных" файлов (все строки заканчиваются на CRLF)
Код: Выделить весь код
#Include <File.au3>

$sFrom = "chcp 1251"
$sTo   = "echo ------------------------------------------->>%randomValue%.txt" &@CRLF& _
         "echo ------------------------------------------->>%randomValue%.txt" &@CRLF& _
         "echo ------------------------------------------->>%randomValue%.txt"

$FileList = _FileListToArray(@ScriptDir, "*.cmd", 1) ; создаём массив со списком всех bat файлов.
For $i=1 to $FileList[0] ; крутим цикл, столько раз, сколько у нас файлов
    $r = _FileLinesReplace(@ScriptDir&"\"& $FileList[$i], $sFrom, $sTo)
    ConsoleWrite("Обработан файл: "& $FileList[$i] &" произведено замен: "& $r &@CRLF)
Next

; -----------------------------------------
; Пользовательская функция (UDF)
; Замена в файле $sFile строки
; с текстом $sFrom на строку/строки $sTo
; -----------------------------------------
Func _FileLinesReplace($sFile, $sFrom, $sTo)
    Local $sText, $hFile, $iRepl

    $sFrom = @CRLF& $sFrom
    $sTo   = @CRLF& $sTo

    $sText = @CRLF& FileRead($sFile)
    $hFile = FileOpen (@ScriptDir&"\"&$FileList[$i], 2)

    $sText = StringReplace($sText, $sFrom,  $sTo)
    $iRepl = @extended
    $sText = StringTrimLeft($sText, 2)

    FileWrite ($hFile, $sText)
    FileClose ($hFile)

    Return $iRepl
EndFunc ; ==> _FileLinesReplace

Последний раз редактировалось amel27, 02-07-2009 в 04:04. Причина: мелкая оптимизация

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:32, 01-07-2009 | #4