This was my original script, if a file had special characters in it's name like "!" or "?" it would just ignore it and not let me know about it:

@echo off
setlocal enabledelayedexpansion

REM ===========================
REM Configuration
REM ===========================

REM Destination directory where processed files will be saved
set "DEST_DIR=D:\Video\MKVConvert"

REM Path to the mkvmerge executable
set "MKVMERGE=C:\Program Files\MKVToolNix\mkvmerge.exe"

REM ===========================
REM Setup
REM ===========================

REM Create destination directory if it does not already exist
if not exist "%DEST_DIR%" (
    echo Creating destination directory: "%DEST_DIR%"
    mkdir "%DEST_DIR%"
    if errorlevel 1 (
        echo Error: Failed to create destination directory.
        echo Please check permissions or the path and try again.
        echo.
        pause
    )
)

REM Check if mkvmerge exists
if not exist "%MKVMERGE%" (
    echo Error: mkvmerge executable not found at "%MKVMERGE%".
    echo Please verify the path to mkvmerge.exe.
    echo.
    pause
)

REM ===========================
REM Processing
REM ===========================

REM Loop through each MKV file in the current directory
for %%a in (*.mkv) do (

    REM Check if the output file already exists
    if exist "!OUTPUT_FILE!" (
        echo Warning: Output file "!OUTPUT_FILE!" already exists. Skipping...
    ) else (
        REM Display a message indicating processing
        echo Processing: "%%~nxa"

        REM Execute mkvmerge to process the file
        "%MKVMERGE%" ^
            --ui-language en ^
            --priority highest ^
            --video-tracks 0 ^
            --audio-tracks 1 ^
            --subtitle-tracks 2 ^
            --no-attachments ^
            --no-global-tags ^
            --no-track-tags ^
            --no-chapters ^
            --language 0:en ^
            --track-name 0: ^
            --default-track-flag 0:yes ^
            --language 1:en ^
            --track-name 1: ^
            --default-track-flag 1:yes ^
            --sub-charset 2:UTF-8 ^
            --language 2:en ^
            --track-name 2: ^
            --default-track-flag 2:yes ^
            --title "" ^
            --track-order 0:0,0:1,0:2 ^
            --output "!OUTPUT_FILE!" ^
            "%%~fa"

        REM Check if the processing was successful
        if !errorlevel! 1 (
            echo Error: Failed to process "%%~nxa". Please check the input file and try again.
        ) else (
            echo Successfully processed "%%~nxa"
			echo.
        )
    )
)

REM ===========================
REM Completion Message
REM ===========================

REM Display a completion message for processing
echo.
echo All MKV files have been processed and saved in "%DEST_DIR%".

REM Pause the script to allow the user to see the output
pause


This is the new script, which doesn't ignore any files  at all:

@echo off

REM ===========================
REM Configuration
REM ===========================

REM Destination directory where processed files will be saved
set "DEST_DIR=D:\Video\MKVConvert"

REM Path to the mkvmerge executable
set "MKVMERGE=C:\Program Files\MKVToolNix\mkvmerge.exe"

REM ===========================
REM Setup
REM ===========================

REM Create destination directory if it does not already exist
if not exist "%DEST_DIR%" (
    echo Creating destination directory: "%DEST_DIR%"
    mkdir "%DEST_DIR%"
    if errorlevel 1 (
        echo Error: Failed to create destination directory.
        echo Please check permissions or the path and try again.
        echo.
        pause
    )
)

REM Check if mkvmerge exists
if not exist "%MKVMERGE%" (
    echo Error: mkvmerge executable not found at "%MKVMERGE%".
    echo Please verify the path to mkvmerge.exe.
    echo.
    pause
)

REM ===========================
REM Processing
REM ===========================

REM Loop through each MKV file in the current directory
for %%a in (*.mkv) do (

    REM Check if the output file already exists
    if exist "%DEST_DIR%\%%~nxa" (
        echo Warning: Output file "%DEST_DIR%\%%~nxa" already exists. Skipping...
    ) else (
        REM Display a message indicating processing
        echo Processing: "%%~nxa"

        REM Execute mkvmerge to process the file
        "%MKVMERGE%" ^
            --ui-language en ^
            --priority highest ^
            --video-tracks 0 ^
            --audio-tracks 1 ^
            --subtitle-tracks 2 ^
            --no-attachments ^
            --no-global-tags ^
            --no-track-tags ^
            --no-chapters ^
            --language 0:en ^
            --track-name 0: ^
            --default-track-flag 0:yes ^
            --language 1:en ^
            --track-name 1: ^
            --default-track-flag 1:yes ^
            --sub-charset 2:UTF-8 ^
            --language 2:en ^
            --track-name 2: ^
            --default-track-flag 2:yes ^
            --title "" ^
            --track-order 0:0,0:1,0:2 ^
            --output "%DEST_DIR%\%%~nxa" ^
            "%%~fa"

        REM Check if the processing was successful
        if errorlevel 1 (
            echo Error: Failed to process "%%~nxa". Please check the input file and try again.
        ) else (
            echo Successfully processed "%%~nxa"
			echo.
        )
    )
)

REM ===========================
REM Completion Message
REM ===========================

REM Display a completion message for processing
echo.
echo All MKV files have been processed and saved in "%DEST_DIR%".

REM Pause the script to allow the user to see the output
pause


Can you look through the changes I made, remember then and then when can I send you a new script which also needs the same treatment as I gave that script, but that as to start with script looks much more different?