![]() |
Как удалить последнюю строку в текстовом файле?
Добрый день, люди добрые помогите, что-то я вообще запутался.
Как удалить последнюю строку в файле? Строку эту я знаю. Файл 100001.txt Код:
20140201.jrn |
Цитата:
Цитата:
Цитата:
Код:
@echo off Цитата:
Вариант №1. Код:
@echo off Код:
@echo off Если в выводе нужны только имена файлов с расширениями (как у Вас), то можно обойтись без команды "dir". Код:
@echo off P. S. Команда "@echo off" обязательна во всех приведённых кодах. |
Вариант 4
Код:
@echo off |
sov44, а если в выводе команды, например, такой:
Код:
for /f "tokens=*" %%i in ('dir /a-d /b /s') do echo %%~nxi По этой причине я не рассматривал этот вариант. |
Я бы попробовал так:
|
Всем огромное спасибо.
|
Цитата:
Цитата:
вторую часть вопроса не рассматривал, т. к. не понятно. по какому критерию считать последнюю строку Цитата:
|
Прямолинейно
Код:
@Echo Off |
Цитата:
Цитата:
Цитата:
|
Опять прямолинейно, если в файле 100001.txt не важен порядок (по убыванию-возрастанию)
Код:
@Echo Off Код:
SetLocal EnableExtensions EnableDelayedExpansion |
Можно извратиться вот так, при этом последнее имя файла из Dir не попадёт в текстовый файл
Код:
@Echo Off Код:
@Echo Off Код:
@Echo Off |
"Немного экзотики"...
Использование команды "fc": Код:
@echo off В случае использования только двух временных файлов в конце переписанного файла будут две лишние пустые строки: Код:
@echo off |
Цитата:
вопрос, а как его подправить, что бы он обрабатывал несколько файлов? |
Anufriev, Неужели это я писал? Задача решалась применительно к конкретной ситуации (это я свою совесть успокаиваю). Боюсь, возможны косяки, если есть пустые строки и всякие спецсимволы.
Цитата:
Если тупо и не думать, организуем процедуру и в неё будем передавать имена файлов Код:
@Echo Off Если это все файлы по какой-то маске в определённой папке, возможно организация For c тем же вызовом процедуры - уточните задачу, если надо. Опять же, работая с текстом в CMD, можно хорошо вляпаться. |
Цитата:
Код:
$arr = dir *.txt #либо прописываем массив с конкретными файлами, имеющими различные пути и расширения. |
Цитата:
Цитата:
файлы имеют маску *.xml находятся в одной папке, при удалении строки копируются в другую папку содержимое разнообразное, но всегда нужно удалить последнюю строку (подпись) она тоже меняется p.s. может и правда отдельную тему создать, что-бы людям проще было найти (я посчитал, что можно небольшой корректировкой кода обойтись, наивный?) :) |
Цитата:
Но что мешает стремиться к лучшему? :) |
Ориентироваться на строки в xml-файлах… Я бы не стал.
|
Вложений: 1
Цитата:
p.s. Естественно данный занулены |
Цитата:
Цитата:
Скрытый текст
Код:
Option Explicit |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
YuS_2, я имел в виду — из нонешних ОС.
|
Цитата:
|
YuS_2, смотря где. У меня и Windows NT 4.0 Workstation не так давно были вполне рабочими станциями. Что делать… За неимением гербовой — пишем на простой :(.
|
Anufriev, с голым CMD Ваша задача вряд ли может быть решена. Если принять, как в вашем примере, что строки разделяются символами 0D 0A (то есть 13 10) и последняя строка этими символами не завершается, в подписи эта парочка не присутствует, то
Вот cmd с привлечением js
Код:
@set @E=1; /* |
Тихий ужас! Я не понимаю как, но это на представленном примере работает :(
Код:
@Echo Off Гарантировать, что это будет работать всегда, не берусь. А так, наверное, более предсказуемо: Код:
@Echo Off |
Цитата:
|
Цитата:
p.s. пойду свечку поставлю, что бы так работал постоянно) |
Удаление любого количества строк от конца текста:
Код:
@echo off |
Цитата:
Код:
@echo off |
Цитата:
только пустые строки съедает... лучше "findstr ..." заменить на "more +1", правда пустая строка лишняя добавляется в конец файла, но это, наверное, не проблема для .xml |
Цитата:
|
Цитата:
|
Время: 18:47. |
Время: 18:47.
© OSzone.net 2001-