Переписать запущенный командный файл - PullRequest
0 голосов
/ 25 мая 2020

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

Пример кода того, чего я хочу достичь,

@echo off
title Self Re-Writing Program

set /p answer="> "
if %answer%=="1" (goto mode1)

:mode1
REM some code here to re-write itself with custom content


REM Exit Program
exit

1 Ответ

0 голосов
/ 25 мая 2020

Вы можете добавить код в конце вашего запущенного скрипта, вы даже можете изменить код после текущего исполняемого кода. Но никогда не меняйте код до текущей исполняемой строки. Синтаксический анализатор «запоминает», в какой позиции кода он должен продолжить (не на счетчик строк, а на счет байтов!). Таким образом, добавление или удаление символов перед текущей выполняющейся строкой заставит синтаксический анализатор выполнить поврежденную строку. Очень вероятно, что это закончится синтаксической ошибкой.

Ответил { ссылка }

...