我需要将批处理文件中的变量传递给 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%'>
如何将批处理变量设置为 html 输入值以获取值“bob”?
答案1
结合其他几个类似问题的答案,一个解决方案可能是:
向您的元素添加
id
属性(例如location
)input
。使用ActiveX/Wscript读取的值,然后使用JavaScript通过1
%location%
事件替换其默认值。input
window.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
谢谢,我已经按照这个方法工作了,但是我需要安排下面的 javascript 代码:
<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>
任何帮助将不胜感激...