Не удается отобразить IF () в текстовый блок, который я создаю в командном файле - PullRequest
1 голос
/ 05 ноября 2019

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

(
echo line 1
…
) > test1.bat

Все это работало хорошо, пока я не попытался вставить оператор if. Окончание ")" в if прервало текстовый блок. Я даже попытался

set "_ascii=)"
echo %_ascii%

, но он был расширен до ")", когда эхо и текстовый блок завершился. Я не вижу, как записать ")" в пакетный файл, который я пытаюсь создать.

Пример кода: test.bat

(
echo set "VAR=1"
echo goto SkipOverFunctions
echo :foo
echo if %%VAR%% EQU 1 (
echo echo var is 1
echo exit /B 0
echo )
echo exit /B 1
echo :SkipOverFunctions
echo call foo
) > test1.bat

1 Ответ

2 голосов
/ 05 ноября 2019

Вы можете убрать буквальную скобку с помощью ^, чтобы он не анализировался как терминатор блока:

(
    echo line1
    echo (line2^)
    echo line3
) > output

Альтернативой может быть использование перенаправления >> "append":

echo line1 > output
echo (line2) >> output
echo line3 >> output
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...