Показать полную графическую версию : [решено] Копирование первой и последней строки из файла
Интрига раскрыта в названии темы. Есть файл с черт его знает каким количеством строк нужно взять первую и последнюю строку и записать в другой файл.
@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
Georgio, спасибо. Ночью нечто подобное и сам написал, но так, определенно, изящнее.
megaloman
22-05-2014, 10:24
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%"
echo %last_string%>>"%out%" »
megaloman, не рекомендую, т. к. будут проблемы со спецсимволами. Можно использовать "setlocal enabledelayedexpansion", но тогда будут проблемы с восклицательными знаками и тем текстом, который находится между ними. Можно также с помощью "set /p="%last_string%"<nul>>"%out%"", но тогда будут проблемы со строками, начинающимися со знака равенства, со строками со спецсимволами в сочетании с непарными кавычками, а в некоторых версиях интерпретатора будут игнорироваться начальные пробелы. Таким образом, лучшим вариантом является именно тот, что я написал.
а вдруг в файле окажется одна строка? »
Есть файл с черт его знает каким количеством строк »
megaloman
23-05-2014, 19:08
Georgio, не рекомендую, т. к. будут проблемы со спецсимволами.вы правы, Ваш способ надёжнее, проверил.
А насчёт одной строки - это чистейшая перестраховка с моей стороны, вредная привычка заморачиваться вопросами: а что если ...
megaloman, не согласен. Это не «вредная» привычка, а умение корректно ставить и решать реальные задачи. Знание основ практического программирования. Так что, подобная привычка очень даже полезна и весьма необходима.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.