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

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

dimas_xp 03-06-2010 23:47 1426958

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

zonderz 04-06-2010 00:38 1426987

просто логика (паскаль)

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 1427116

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

@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


Время: 06:07.

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