배치에서 HTML 입력 값으로 변수 전달

배치에서 HTML 입력 값으로 변수 전달

배치 파일의 변수를 html 입력 값으로 전달해야 합니다. a를 %variable%html 입력 값으로 설정하면 반환되지만 %variable%실제 값은 반환되지 않습니다.

내 코드:

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

html 형식에서 변수는 %location%"bob" 값을 반환해야 하지만 " %location%"를 반환합니다.

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

"bob" 값을 얻으려면 배치 변수를 html 입력 값으로 어떻게 설정합니까?

답변1

다른 여러 유사한 질문의 답변을 결합하면 다음과 같은 해결책이 될 수 있습니다.

  1. 요소에 id속성(예: )을 추가합니다 .locationinput

  2. ActiveX/Wscript로 값을 읽은 다음 JavaScript를 사용하여 1 이벤트를 통해 %location%해당 기본값을 바꿉니다 .inputwindow.onload

따라서 본질적으로 코드는 다음과 같습니다.

<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.onload불행히도 여기서는 작동하지 않는 것 같았습니다.


답변2

감사합니다. 이렇게 작동하게 되었지만 아래에 자바스크립트 코드를 정리해야 합니다.

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

어떤 도움이라도 주시면 감사하겠습니다...

관련 정보