CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Ответить
Аватара пользователя
valen

CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение valen »

Здравствуйте. Помогите пожалуйста с батником.

Нужно что бы из txt файла распечатывалось последние 10 строк на принтер. Или эти строки выводились в другой файл.

Заранее спасибо.
Аватара пользователя
valen

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение valen »

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

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение valen »

Извините, а как просто удалить 10 последних строк из txt файла?
Аватара пользователя
maxpirata

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение maxpirata »

"Голым" 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

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение maxpirata »

такой батник получился. но, только первая часть отрабытывает (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

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение Iska »

Цитата maxpirata:



только первая часть отрабытывает (brsW860-.txt) - а вторая нет (с файлом brsW860.txt). что не так?
CMD/BAT - [решено] Печать последних 10 строк из txt файла.




«Не так» — «exit /b» в середине пакетного файла.
Аватара пользователя
maxpirata

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение maxpirata »

не помогло..



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



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

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение maxpirata »

Значит, второе «не так» — в условии:


Цитата maxpirata:



if %%i equ %i% goto:eof
CMD/BAT - [решено] Печать последних 10 строк из txt файла.




Надо смотреть, что с этим делать.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Печать последних 10 строк из txt файла.

Сообщение Iska »

а что это за условие? if %%i equ %i%



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

Вернуться в «Скриптовые языки администрирования Windows»