Ta część kodu wymaga zmiany
for /f "tokens=2 delims=:" %%B in ("!line!") do (
set "output_file=%%B"
echo Tworzenie pliku: !output_file!
set "capture=true"
(echo.> "!output_file!") || (echo Błąd: Nie można utworzyć pliku: !output_file!)
)
ponieważ nieprawidłowo przetwarza linie ::: nazwa pliku :::
proponuje takie zmiany
@echo off
setlocal enabledelayedexpansion
set "input_file=plik.txt"
set "output_file="
set "capture=false"
echo Otwieranie pliku %input_file%
for /f "tokens=* delims=" %%A in ('type "%input_file%"') do (
set "line=%%A"
echo Przetwarzanie linii: !line!
if "!line!"=="::: koniec pliku :::" (
echo Koniec pliku dla !output_file!
set "capture=false"
set "output_file="
) else (
if "!line:~0,3!"==":::" (
set "output_file=!line:~4!"
echo Tworzenie pliku: !output_file!
set "capture=true"
(echo.> "!output_file!") || (echo Błąd: Nie można utworzyć pliku: !output_file!)
) else (
if "!capture!"=="true" (
echo Dodawanie do !output_file!: !line!
(echo.!line!>> "!output_file!") || (echo Błąd: Nie można dopisać do pliku: !output_file!)
)
)
)
)
echo Pliki zostały utworzone.
pause
i kosmetyczne zmiany w pliku z zapisu ::: nazwa pliku ::: do ::: nazwa pliku
::: index.html
<!DOCTYPE html>
<html lang="pl">
</html>
::: koniec pliku :::
::: main.js
const a;
::: koniec pliku :::
::: settings.js
const b;
::: koniec pliku :::
::: finalSettings.js
document.getElementById("finishButton").addEventListener('click', () => window.close());
::: koniec pliku :::
BTW, jak słusznie zauważył @adrian17; plik wsadowy (Batch File Language) IMO nie nadaje się do tego typu akcji.
Rozważ użycie: VBScript (VBS), PowerShell, Python (w trybie CLI), PHP (w trybie CLI) itp.
IMO może lepiej nie tworzyć jednego pliku plik.txt z kodem (html, js) tylko od razu zapisać je w osobnych plikach .htm, .js i spakować np. zip-em, rar-em, itp. i mieć je spakowane jako jeden plik, druga korzyść, pakowanie zmniejsza wielkość plików.