Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование первой и последней строки из файла (http://forum.oszone.net/showthread.php?t=282527)

Elven 21-05-2014 21:19 2354121

Копирование первой и последней строки из файла
 
Интрига раскрыта в названии темы. Есть файл с черт его знает каким количеством строк нужно взять первую и последнюю строку и записать в другой файл.

Georgio 21-05-2014 23:41 2354174

Код:

@echo off
set "in=source.txt"
set "out=destination.txt"
for /f "usebackq delims=" %%i in ("%in%") do echo %%i>"%out%"& goto:#
:#
for /f "usebackq delims=" %%i in ("%in%") do set "last_string=%%i"
for /f "delims=" %%i in ("%last_string%") do echo %%i>>"%out%"
exit /b


Elven 22-05-2014 09:54 2354240

Georgio, спасибо. Ночью нечто подобное и сам написал, но так, определенно, изящнее.

megaloman 22-05-2014 10:24 2354244

Georgio, А если так?
Код:

@echo off
set "in=source.txt"
set "out=destination.txt"
for /f "usebackq delims=" %%i in ("%in%") do echo %%i>"%out%"& goto:#
:#
for /f "usebackq delims=" %%i in ("%in%") do set "last_string=%%i"
echo %last_string%>>"%out%"

или так (начиная со второго For)- а вдруг в файле окажется одна строка?
Код:

for /f "usebackq skip=1 delims=" %%i in ("%in%") do set "last_string=%%i"
IF not "%last_string%"=="" echo %last_string%>>"%out%"


Georgio 22-05-2014 19:51 2354503

Цитата:

Цитата megaloman
Код:

echo %last_string%>>"%out%"
»

megaloman, не рекомендую, т. к. будут проблемы со спецсимволами. Можно использовать "setlocal enabledelayedexpansion", но тогда будут проблемы с восклицательными знаками и тем текстом, который находится между ними. Можно также с помощью "set /p="%last_string%"<nul>>"%out%"", но тогда будут проблемы со строками, начинающимися со знака равенства, со строками со спецсимволами в сочетании с непарными кавычками, а в некоторых версиях интерпретатора будут игнорироваться начальные пробелы. Таким образом, лучшим вариантом является именно тот, что я написал.


Цитата:

Цитата megaloman
а вдруг в файле окажется одна строка? »

Цитата:

Цитата Elven
Есть файл с черт его знает каким количеством строк »


megaloman 23-05-2014 19:08 2354937

Georgio,
Цитата:

не рекомендую, т. к. будут проблемы со спецсимволами.
вы правы, Ваш способ надёжнее, проверил.
А насчёт одной строки - это чистейшая перестраховка с моей стороны, вредная привычка заморачиваться вопросами: а что если ...

Iska 23-05-2014 19:55 2354954

megaloman, не согласен. Это не «вредная» привычка, а умение корректно ставить и решать реальные задачи. Знание основ практического программирования. Так что, подобная привычка очень даже полезна и весьма необходима.


Время: 06:19.

Время: 06:19.
© OSzone.net 2001-