Изменить текст, который содержит символы в файле, используя пакет - PullRequest
1 голос
/ 04 февраля 2012

Я на самом деле пытаюсь заменить часть строки в текстовом файле.

Если мой старый файл содержит этот текст

12345qwert91202030000000

Я хочу изменить «120203» на «120204». Это мой код:

setlocal enabledelayedexpansion
if exist c:\myfile.txt (set b=c:\myfile.txt) ELSE GOTO LOGO

for /f "tokens= 1" %%c in (%b%) do (set line=%%c)

Set NEWdate=120204

ECHO %line:~0,11%%NEWDate%%line:~17,7% > %b%

Это работает просто отлично. Теперь, если мой старый файл содержит следующий текст

12345q&ert91202030000000

Обратите внимание на символ '&', мой код не работает, поскольку он воспринимает его как код.

Есть предложения?

1 Ответ

2 голосов
/ 04 февраля 2012

В этом случае следует использовать отложенное расширение, так как процентное расширение не будет выполнено со специальными символами, но отложенное расширение не распознает их.

Просто измените проценты с восклицательными знаками, вы включили отложенное расширение раньше.

ECHO !line:~0,11!!NEWDate!!line:~17,7! > %b%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...