ComradG
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ssnvit да, с временем полный ахтунг, так что надеюсь краткое описание все-таки поможет. Добавлено: gjf сложности с Unicod'ом отпадут сами собой, если скрестить батник с jscript'ом, благо тот может парсить как ANSI, так и Unicode. например, вот скрипт который будет пасрить последние n-строк в файле (соответствующие ключи в комплекте): Код: @set @script= 0 /* @echo off set @script= cscript //nologo //e:jscript "%~dpnx0" %* exit /b */ try { var ANSI = 0, Unicode = -1, Default = -2, nArgs = WScript.Arguments.Named, lines = Number(nArgs.Item("n")), epage = nArgs.Exists("a") ? ANSI : nArgs.Exists("u") ? Unicode : Default, score = WScript.Arguments.Unnamed(0); if (!lines) lines = 10; Tail(lines, score, epage); } catch (e) { WScript.echo(e.message + "."); WScript.echo("Синтаксис: " + WScript.ScriptName + " /n:N [/a | /u] файл"); WScript.echo(" /n:N - показать N строк (по умолчанию 10)"); WScript.echo(" /a - парсить как ANSI"); WScript.echo(" /u - парсить как Unicode"); WScript.Quit(1); } function Tail(numLines, fileName, codePage) { var ForReading = 1, fso = new ActiveXObject("Scripting.FileSystemObject"), arr = [], string, stream; if (fso.FileExists(fileName)) { if (fso.GetFile(fileName).Size != 0) { stream = fso.GetFile(fileName).OpenAsTextStream(ForReading, codePage); while (!stream.AtEndOfStream) { string = stream.ReadLine(); arr.push(string); if (arr.length > numLines) arr.shift(); } stream.Close(); WScript.echo(arr.join("\n")); } else { WScript.echo("Файл пуст."); } } else { WScript.echo("Файл не найден."); } } |
|