J'ai du mal à écrire un script batch. Je l'ai réduit à ce qui semble se briser et je donne un exemple. Le code suivant, lorsque collé dans une console retourne 10 lignes:Pourquoi l'appel sqlcmd suivant renvoie-t-il 0 ligne dans un fichier bat? (passant manuellement)
set TESTRUNID=111222
set QUERY="select distinct col1 from Table where col2='%TESTRUNID%' and col3 LIKE '%es'"
start /B /wait sqlcmd -S dahost -U usr -P pwd -Q %QUERY% -o resfile.txt
Lorsque je l'ai mis dans un script batch, il retourne 0 lignes!
@echo off
setlocal EnableDelayedExpansion
REM remark
REM remark
set TESTRUNID=111222
set QUERY="select distinct col1 from Table where col2='%TESTRUNID%' and col3 LIKE '%es'"
start /B /wait sqlcmd -S dahost -U usr -P pwd -Q %QUERY% -o resfile.txt
Je ne peux pas répondre à votre question, mais votre clause «WHERE» me semble louche. Je pense qu'il devrait se lire 'wheretranstrunid LIKE '% TESTRUNID%''. Pourquoi une carte d'identité aurait-elle des signes de pourcentage? –
@TimBiegeleisen le %% est pour le moteur de script batch d'analyser TESTRUNID comme la valeur définie dans la ligne ci-dessus – DraxDomax
Qu'en est-il de '% es' - qui n'a qu'un'% ' – doctorlove