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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как удалить последнюю строку в текстовом файле?

Ответить
Настройки темы
CMD/BAT - [решено] Как удалить последнюю строку в текстовом файле?

Новый участник


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

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


Изменения
Автор: ivanxam
Дата: 20-02-2014
Описание: Дописал
Добрый день, люди добрые помогите, что-то я вообще запутался.
Как удалить последнюю строку в файле? Строку эту я знаю.

Файл 100001.txt
Код: Выделить весь код
20140201.jrn
20140202.jrn
20140203.jrn
20140204.jrn
20140205.jrn
20140206.jrn
20140207.jrn
20140208.jrn
20140209.jrn
20140210.jrn
Или можно выполнить dir без последней строки(файла)

Отправлено: 16:03, 20-02-2014

 

Пользователь


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

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


Цитата megaloman:
А так, наверное, более предсказуемо:

Код: Выделить весь код
@Echo Off
 Set "BoxIn=Z:\Box_In"
 Set "BoxOut=Z:\Box_Out"
 Set "Mask=*.xml"
 Set "End=</ESDT_BNK>"
FOR %%f IN ("%BoxIn%\%Mask%") DO Call :Restrict "%%f"
GoTo :Eof
:Restrict
 >"%BoxOut%\%~nx1" (FOR /F "usebackq delims=" %%t IN (%1) DO (@echo.%%t) &If /I "%End%"=="%%t" GoTo :Eof)
GoTo :Eof »
Взял потестировать этот, пока что работает хорошо, будем понаблюдать))) спасибо огромное!

p.s. пойду свечку поставлю, что бы так работал постоянно)

Отправлено: 13:57, 17-09-2018 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


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

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


Удаление любого количества строк от конца текста:
Код: Выделить весь код
@echo off
set "infile=files.txt"
set "outfile=out.txt"

rem количество удаляемых строк
set k=1

for /f %%a in ('^<"%infile%" more^|find /v /c ""') do set n=%%a
set /a n-=k+1

(for /l %%i in (0,1,%n%) do (
	more +%%i "%infile%"|set /p x=^&cmd /v/c "if defined x (echo.!x!) else (echo.)"
))>"%outfile%"

-------
scio me nihil scire. Ѫ

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

Отправлено: 14:49, 17-09-2018 | #32


Ветеран


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

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


Цитата YuS_2:
Удаление любого количества строк от конца текста: »
можно и короче:
Код: Выделить весь код
@echo off
set cns=3
<"file.txt">+ (sort /+2147483647|more +%cns%|sort /+2147483647|findstr /vrc:"^$")& move+ "file.txt"
exit
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:04, 17-09-2018 | #33


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата alpap:
можно и короче »
промежуточный файл дает значительный прирост скорости
только пустые строки съедает...
лучше "findstr ..." заменить на "more +1", правда пустая строка лишняя добавляется в конец файла, но это, наверное, не проблема для .xml

-------
scio me nihil scire. Ѫ

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

Отправлено: 18:37, 17-09-2018 | #34


Ветеран


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

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


Цитата YuS_2:
промежуточный файл дает значительный прирост скорости »
согласен, но на удивление sort работает быстро.

Отправлено: 20:19, 17-09-2018 | #35


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата alpap:
на удивление sort работает быстро. »
Тут скорее заслуга не sort. В твоем примере одна команда обрабатывает весь массив текста сразу, в отличие от моего (построчная обработка), что и дает тот самый прирост. Жаль, что в cmd отсутствуют полноценные конвейеры, тогда промежуточный файл не понадобился бы, да и скорость обработки была бы ещё выше...

-------
scio me nihil scire. Ѫ


Отправлено: 08:33, 18-09-2018 | #36



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как удалить последнюю строку в текстовом файле?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удалить пустую строку в файле .txt denntl Скриптовые языки администрирования Windows 2 18-07-2013 11:48
Любой язык - [решено] Как выделить каждую определенною строку в текстовом файле KooDI Скриптовые языки администрирования Windows 6 05-03-2013 21:47
VBS/WSH/JS - [решено] Как изменить конкретную строку в текстовом файле с помощью Vbscript neo21 Скриптовые языки администрирования Windows 8 30-10-2011 15:47
CMD/BAT - [решено] Удалить в текстовом файле по условию AlexVong Скриптовые языки администрирования Windows 1 21-11-2010 11:53
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? Pozia AutoIt 23 14-05-2009 21:41




 
Переход