PDA

Показать полную графическую версию : [решено] Печать последних 10 строк из txt файла.


valen
18-08-2011, 14:43
Здравствуйте. Помогите пожалуйста с батником.
Нужно что бы из txt файла распечатывалось последние 10 строк на принтер. Или эти строки выводились в другой файл.
Заранее спасибо.

Foreigner
18-08-2011, 15:18
valen,
Последние 10 строк в другой файл

@echo off
setlocal

for /f %%i in ('type 1.txt ^| find /c /v ""') do set /a skip=%%i-10
1>2.txt more +%skip% 1.txt

valen
18-08-2011, 15:55
Спасибо громадное!

maxpirata
27-01-2016, 17:47
Извините, а как просто удалить 10 последних строк из txt файла?

greg zakharov
27-01-2016, 18:25
"Голым" cmd примерно так:
@echo off
setlocal
for /f %%i in ('find /c /v "" ^< myfile') do set /a "i=%%i-9"
>out.txt (for /f "tokens=1,* delims=][" %%i in (
'find /n /v "" myfile'
) do (
if %%i equ %i% goto:eof
echo:%%j
))
endlocal
exit /b
Если есть sed:
sed ':a;$!N;1,10ba;P;$d;D' myfile > out.txt
Ну или PowerShell:($$ = gc .\myfile)[0..($$.Count - 10)] | Out-File out.txt

maxpirata
28-01-2016, 17:16
такой батник получился. но, только первая часть отрабытывает (brsW860-.txt) - а вторая нет (с файлом brsW860.txt). что не так?
__________________________________________________________________________________________
@echo off
setlocal
for /f %%i in ('find /c /v "" ^< L:\brsW860-.txt') do set /a "i=%%i-7"
>L:\bW860DB.txt (for /f "tokens=1,* delims=][" %%i in (
'find /n /v "" L:\brsW860-.txt'
) do (
if %%i equ %i% goto:eof
echo:%%j
))
endlocal
exit /b

@echo off
setlocal
for /f %%i in ('find /c /v "" ^< L:\brsW860.txt') do set /a "i=%%i-10"
>L:\bW860MB.txt (for /f "tokens=1,* delims=][" %%i in (
'find /n /v "" L:\brsW860.txt'
) do (
if %%i equ %i% goto:eof
echo:%%j
))
endlocal
exit /b
__________________________________________________________________________________________

если раскинуть эти части в разные батники - то режит и тот и тот (отдельно)

а можно как то что бы оно в одном файле было?

Iska
28-01-2016, 23:37
только первая часть отрабытывает (brsW860-.txt) - а вторая нет (с файлом brsW860.txt). что не так? »
«Не так» — «exit /b» в середине пакетного файла.

maxpirata
29-01-2016, 10:23
не помогло..

отрабатывает только первая часть

может там как то одинаковые имена переменных? (или типо того...)

Iska
29-01-2016, 10:38
Значит, второе «не так» — в условии:
if %%i equ %i% goto:eof »
Надо смотреть, что с этим делать.

maxpirata
01-02-2016, 11:31
а что это за условие? if %%i equ %i%

можно ли вообще удалить эту строку? - if %%i equ %i% goto:eof




© OSzone.net 2001-2012