set "variableName=D:\Data"
setlocal enableextensions enabledelayedexpansion
rem !test! exclaimations, %test% percentages
for /f "skip=1 delims=" %%A in ('
type "%~f0" ^&
^> "%~f0" echo set "variableName=D:\Data2"
') do (
setlocal disabledelayedexpansion
>> "%~f0" echo %%A
endlocal
)
endlocal
Вы можете избежать подсчета, поскольку skip=1
можно использовать для пропуска первой строки. Используйте delims=
, чтобы избежать разделения строки. tokens=*
игнорирует разделители в начале строки и получает остаток строки, чтобы его можно было пропустить для этой задачи.
Новая первая строка теперь в команде for
l oop вместо стирать файл, чтобы очистить Если вы echo
больше строк, увеличьте число skip
.
Также может потребоваться использовать setlocal disabledelayedexpansion
, чтобы восклицательные знаки были сохранены.
Изменение того же файла, который читается риск, хотя я предполагаю, что вы понимаете риск.