Passar variável do lote para o valor de entrada HTML

Passar variável do lote para o valor de entrada HTML

Preciso passar uma variável de um arquivo em lote para um valor de entrada HTML. Se eu definir a %variable%como o valor de entrada html, ele retornará, %variable%mas não o valor real dele.

Meu 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>

No formato html a variável %location%deveria retornar o valor "bob" mas retorna " %location%".

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

Como defino a variável batch para o valor de entrada html para obter o valor “bob”?

Responder1

Combinando respostas de várias outras perguntas semelhantes, uma solução poderia ser:

  1. Adicione um idatributo (por exemplo location) ao seu inputelemento.

  2. Leia o valor de %location%com ActiveX/Wscript e use JavaScript para substituir o valor padrão inputpor meio do evento window.onload1 .

Então, em essência, seu código pode ser algo como:

<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.onloadnão parecia funcionar aqui, infelizmente.


Responder2

Obrigado, consegui funcionar assim mas preciso organizar o código javascript abaixo:

<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>

Qualquer ajuda será apreciada...

informação relacionada