Проблема с пробелами в командном файле - PullRequest
0 голосов
/ 16 марта 2011

Я пытаюсь найти подстроку и заменить ее другой строкой в ​​файле записей SVN, используя следующий код Однако, когда код встречается с чем-то вроде «» (пробел, когда он виден в блокноте) или «##» (когда он виден в блокноте ++), код заменяет его на «ECHO выключен». Как обойти эту проблему.

@echo off

setlocal enabledelayedexpansion

set LOCATION=C:\RUNTIME_DATA\

set OUTTEXTFILE=test_out.txt

set oldstr3=SetWorkflowVariable

set newstr3=SetProcessVariable

set oldstr5=

set newstr5=

FOR /r %LOCATION% %%x IN (*.*) do (

FOR /f "tokens=1,* delims=¶" %%A in ('"type %%x"') do (

SET string=%%A

SET modified=!string:%oldstr3%=%newstr3%!

SET modified=!modified:%oldstr5%=%newstr5%!

echo !modified! >> %OUTTEXTFILE%
)

del %%x

copy %OUTTEXTFILE% %%x

del %OUTTEXTFILE%

echo location  %%x >> LOG_FOR_ENTRIES_%date:~4,2%%date:~7,2%%date:~10,4%%time:~0,2%%time:~3,2%%time:~6,2%%.txt

)

1 Ответ

2 голосов
/ 16 марта 2011

Заменить echo !modified! на echo.!modified!. Точка ясно показывает, что вы хотите что-то повторить. Он не будет напечатан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...