Come fare eco alle virgolette colore in questa funzione batch?


0

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?


Nessuna idea. Ma il valore di %3 sta rompendo if /i not "%3"=="/n" echo.
DavidPostill

Questa linea si espande if /i not "Data"] ["Value"=="/n" echo. da dove proviene la sintassi non valida. Vai a capire ...
DavidPostill

Funziona bene per me. Si legge come "" quando% 3 non è definito
Mark Deven

Si ma %3 non è indefinito. Prova ad aggiungere echo %3 nella tua subroutine ...
DavidPostill

Se% 3 non è definito ha virgolette, quindi funziona bene. Ecco come si prova quindi con If "% 3" == "" echo indefinito
Mark Deven
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.