Ho il seguente script con una funzione eco colorata:
@echo off
setlocal EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
::call :c 0b "^!<>&| abc123 %%%%"*?"
rem Prepare a file "X" with only one dot
<nul > X set /p ".=."
call :c 0f " [DBName] ["Value=Data"] ["Value=Data"] "
exit
:c
set "param=^%~2" !
set "param=!param:"=\"!"
findstr /p /A:%1 "." "!param!\..\X" nul
<nul set /p ".=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%"
if /i not "%3"=="/n" echo.
exit /b
La linea call :c 0f " [DBName] ["Value=Data"] ["Value=Data"] "
non funziona. Come posso farlo funzionare?
if /i not "Data"] ["Value"=="/n" echo.
da dove proviene la sintassi non valida. Vai a capire ...
%3
non è indefinito. Prova ad aggiungere echo %3
nella tua subroutine ...
%3
sta rompendoif /i not "%3"=="/n" echo.