Pasar variable del lote al valor de entrada html

Pasar variable del lote al valor de entrada html

Necesito pasar una variable de un archivo por lotes a un valor de entrada html. Si configuro a %variable%en el valor de entrada html, devuelve %variable%pero no el valor real del mismo.

Mi código:

<!-- :
 :: textSubmitter.bat
 @echo off

 set "location=bob"



 for /f "tokens=1-8 delims=," %%a in ('mshta.exe "%~f0"') do (
     set "dossier=%%a"
     set "occupation=%%b"
     set "lieu=%%c"
    set "dated=%%d"
     set "datef=%%e"
     set "ets=%%f"
    set "type=%%g"
     set "subdi=%%h"
 )

     echo "Dossier =%dossier%"
     echo "Occupation =%occupation%"
     echo "Lieu :=%lieu%"
    echo "Date Debut : =%dated%"
     echo "Date Fin : =%datef%"
     echo "Entreprise : =%ets%"
    echo "Type : =%type%"
     echo "Subdi : =%subdi%"

 pause
 goto :EOF

 -->

 <html>
   <head>
     <title>Classement chantier</title>
   </head>
   <body>

     <script language='javascript' >
         function pipeText() {
             var dossier=document.getElementById('dossier').value;
             var occupation=document.getElementById('occupation').value;
             var lieu=document.getElementById('lieu').value;
            var dated=document.getElementById('dated').value;
             var datef=document.getElementById('datef').value;
             var ets=document.getElementById('ets').value;
            var type=document.getElementById('type').value;
             var subdi=document.getElementById('subdi').value;

             var Batch = new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
             close(Batch.WriteLine(dossier+','+occupation+','+lieu+','+dated+','+datef+','+ets+','+type+','+subdi));
       }
     </script>

     Dossier : <input type='text' name='dossier' size='25' value='%location%'></input><br>
     Occupation : <input type='text' name='occupation' size='25'></input><br>
     Lieu : <input type='text' name='lieu' size='25'></input><br>
    Date Debut : <input type='text' name='dated' size='25'></input><br>
     Date Fin : <input type='text' name='datef' size='25'></input><br>
     Entreprise : <input type='text' name='ets' size='25'></input><br>
    Type : <input type='text' name='type' size='25'></input><br>
     Subdi : <input type='text' name='subdi' size='25'></input><br>

     <hr>
     <button onclick='pipeText()'>Submit</button>
   </body>
 </html>

En el formato html, la variable %location%debería devolver el valor "bob" pero devuelve " %location%".

<input type='text' name='dossier' size='25' value='%location%'>

¿Cómo configuro la variable por lotes en el valor de entrada html para obtener el valor "bob"?

Respuesta1

Combinando respuestas de varias otras preguntas similares, una solución podría ser:

  1. Agregue un idatributo (p. ej. location) a su inputelemento.

  2. Lea el valor de %location%con ActiveX/Wscript y luego use JavaScript para reemplazar el valor predeterminado inputa través del evento window.onload1 .

Entonces, en esencia, su código podría verse así:

<script language='javascript'>
    window.onload = function(e){
        var envlocation = new ActiveXObject('wscript.shell');
        envLocation = envlocation.ExpandEnvironmentStrings('%location%');
        document.getElementById('location').value = envLocation
    }
</script>

Dossier : <input type='text' id='location' name='dossier' size='25'></input><br>

1 document.onloadDesafortunadamente, no pareció funcionar aquí.


Respuesta2

Gracias, lo hice funcionar así, pero necesito organizar el código javascript a continuación:

<script language='javascript'> 
     window.onload = function(e){
     var envlocation = new ActiveXObject('wscript.shell');
     envLocation = envlocation.ExpandEnvironmentStrings('%dossier%');
     document.getElementById('dossier').value = envLocation     
     envLocation = envlocation.ExpandEnvironmentStrings('%occupation%');
     document.getElementById('occupation').value = envLocation  
     envLocation = envlocation.ExpandEnvironmentStrings('%lieu%');
     document.getElementById('lieu').value = envLocation    
     envLocation = envlocation.ExpandEnvironmentStrings('%dated%');
     document.getElementById('dated').value = envLocation   
     envLocation = envlocation.ExpandEnvironmentStrings('%datef%');
     document.getElementById('datef').value = envLocation   
     envLocation = envlocation.ExpandEnvironmentStrings('%ets%');
     document.getElementById('ets').value = envLocation     
     envLocation = envlocation.ExpandEnvironmentStrings('%type%');
     document.getElementById('type').value = envLocation    
     envLocation = envlocation.ExpandEnvironmentStrings('%subdi%');
     document.getElementById('subdi').value = envLocation } 
</script>

Cualquier ayuda será apreciada...

información relacionada