Показать полную графическую версию : Удаление последнего символа в каждой строке txt - файла
Мария_Айдарова@vk
03-01-2013, 19:30
Как можно реализовать с помощью bat - файла удаление последнего символа в каждой строке txt - файла?
Foreigner
03-01-2013, 20:49
Лучше всего с помощью какой-нибудь утилиты для обработки текста. Например с помощью sed (http://gnuwin32.sourceforge.net/packages/sed.htm)
sed -i "s/.$//g" 1.txt
@Echo Off
SetLocal EnableDelayedExpansion
Set file=e:\Temp 1\temp.txt
Set newfile=e:\Temp 1\newtemp.txt
(For /F "tokens=* usebackq delims=" %%a In ("%file%") Do (
Set ta=%%a
Echo !ta:~0,-1!
))>"%newfile%"
Мария_Айдарова@vk
03-01-2013, 21:14
Всем спасибо огромное!
Freddy1984
01-08-2019, 15:34
А если нужно удалить первый и последний символ, как это правильно реализовать?
я так понимаю ещё один Set и Echo нужно добавить?
megaloman
01-08-2019, 15:40
Вместо !ta:~0,-1! » !ta:~1,-1!
А вообще-то работа с текстом в CMD - скользкий путь. Лучше что-то другое (vbs, js, PowerShell)
Freddy1984
01-08-2019, 15:50
скользкий путь »
согласен, но сначала хочется помучать cmd, наступить на всевозможные грабли, а потом заняться делом))
!ta:~1,-1! »
пробовал так, но что то не выходит, от того и написал сюда..
просто последний символ, это пробел в конце строки, он вот и не удаляется.
megaloman
01-08-2019, 15:57
Freddy1984, Тебя как сразу прикончить или желаешь помучиться?
Хотелось бы конечно помучиться. :) Если заниматься делом, то дайте Ваш файл.
Freddy1984
01-08-2019, 16:02
Если заниматься делом, то дайте Ваш файл. »
да там всё просто, пробел сначала и в конце каждой строки.
строк несколько сот. понятно что можно тупо через ctrl+h , но подумал я таки про cmd для начала.
2. ага, тоже мой обожаемый фильм))))
megaloman
01-08-2019, 16:11
Freddy1984, Не знаю Вашей задачи, оставил только выдачу на консоль без записи в файл. Попробуйте:@Echo Off
Set "FileIn=Z:\Box_In\Аренда тента тента тента.txt"
For /F "usebackq delims=" %%a In ("%FileIn%") Do (
Set "ta=%%a"
Echo "%%a"
Call Echo "%%ta:~1,-1%%"
)
Pause
Exit /B
Кавычки поставил специально, чтобы можно было сравнить два Echo: что было и что стало
да там всё просто, пробел сначала и в конце каждой строки. »
А если два где-то будет?
Freddy1984
01-08-2019, 17:30
А если два где-то будет? »
тогда кирдык ))
megaloman
01-08-2019, 17:37
Freddy1984, А если два где-то будет? » - это реально? А внутри есть пробелы? Что надо, убрать все пробелы в начале и в конце строки?
Freddy1984
01-08-2019, 18:22
Что надо, убрать все пробелы в начале и в конце строки? »
да, и этот вопрос решен, я вас поблагодарил :)
megaloman
01-08-2019, 18:23
Freddy1984, Ранее я делал задачу: убрать по одному символу в начале и в конце строки. Оказалось, что это пробелы, и предположили, что их в начале и в конце строки может быть не одинтогда кирдык »@Echo Off
cls
Set "FileIn=Z:\Box_In\Аренда тента тента тента.txt"
For /F "usebackq delims=" %%a In ("%FileIn%") Do Call :Trim "%%a"
Pause
Exit /B
:Trim
Set "ta=%~1"
:Begin
Set "tas=%ta%"
If "%ta:~0,1%"==" " Set "ta=%ta:~1%"
If "%ta:~-1%"==" " Set "ta=%ta:~0,-1%"
If Not "%tas%"=="%ta%" GoTo :Begin
Echo "%~1"
Echo "%ta%"
Exit /B
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC