Показать полную графическую версию : Удаление пробелов справа в строках в файле (rtrim)
dimas_xp
03-06-2010, 23:47
Добрый вечер! Подскажите, как можно решить следующую задачу с помощью bat файла.
Есть несколько файлов (*.aa1, *.aa2,....) нужно в каждой строку для каждого из этих файлов удалить все пробелы, т.е. сделать rtrim для каждой строки.
просто логика (паскаль)
while True do if Stroka[1] = ' ' then Delete (Stroka, 1,1) else Exit
полезная ссылка по триму...
http://www.dostips.com/DtTipsStringManipulation.php
обычно батник пишется из расчета на конкретный текст, форматирование произвольных строк батником - далеко нетривиальная задача т.к. некоторые знаки зарезервированы под метасимволы (особенно сложно с процентами и кавычками), у меня получился такой вариант:
@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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC