PDA

Показать полную графическую версию : Удаление пробелов справа в строках в файле (rtrim)


dimas_xp
03-06-2010, 23:47
Добрый вечер! Подскажите, как можно решить следующую задачу с помощью bat файла.
Есть несколько файлов (*.aa1, *.aa2,....) нужно в каждой строку для каждого из этих файлов удалить все пробелы, т.е. сделать rtrim для каждой строки.

zonderz
04-06-2010, 00:38
просто логика (паскаль)

while True do if Stroka[1] = ' ' then Delete (Stroka, 1,1) else Exit

полезная ссылка по триму...
http://www.dostips.com/DtTipsStringManipulation.php

amel27
04-06-2010, 09:33
обычно батник пишется из расчета на конкретный текст, форматирование произвольных строк батником - далеко нетривиальная задача т.к. некоторые знаки зарезервированы под метасимволы (особенно сложно с процентами и кавычками), у меня получился такой вариант:

@echo off

set mask=*.aa1 *.aa2
set rand=~%random%.tmp

for %%f in (%mask%) do (
if exist %rand% del %rand%
for /f "usebackq delims=" %%i in ("%%f") do (
set "line=%%i"
call :echo >>%rand%)
if exist %rand% del /f/q "%%f"& ren %rand% "%%f"
)
if exist %rand% del %rand%
exit /b

:echo
if not defined line echo.& exit /b
set "$eol=%line:~-1%"
set "$eol=%$eol: =%"

if not defined $eol set "line=%line:~0,-1%"
if not defined $eol goto :echo
<nul set /p $x="%line%"
echo.& exit /b


P.S. всё-таки надежней использовать специально предназначенные для этого утилиты типа SED




© OSzone.net 2001-2012