Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Вдогонку...
Busla,
Цитата hxygen:
т.е. неудаляем;не удаляем;здесь удаляем весь текст после ; и точку с запятой тоже »
Я понял это как строки вида aaa;bbb;ccc переделать в aaa;bbb

hxygen, ну а если нужна рекурсия,то
Код: Выделить весь код
@Echo Off
Set Source=C:\Source\test.txt

SetLocal EnableDelayedExpansion
For /F "Tokens=1* Delims=;" %%A In ('Type "%Source%"') Do Call :Func "%%A" "%%B"
Move /Y "%Temp%\_tmp" "%Source%"
EndLocal
GoTo :EOF

:Func
If "!Str!"=="" (Set Str=%~1) Else (Set Str=!Str!;%~1)
Echo.%~2|Find ";" 1>nul&&(For /F "Tokens=1* Delims=;" %%A in (%2) Do Call :Func "%%A" "%%B")||(If Not "!Str!"=="" Echo.!Str!>>"%Temp%\_tmp"&Set Str=)
Ограничения: пустые строки удаляются; строка не должна содержать символ "!", иначе будут "сюрпризы"

Последний раз редактировалось El Sanchez, 08-11-2010 в 17:05. Причина: добавил ограничения. Спасибо amel27 за намек

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:19, 05-11-2010 | #7