hybrid batch/jscript/hta: 在 Jscript 中读取 2 个输入并将它们传递给 Batch
hybrid batch/jscript/hta: read 2 inputs in Jscript and pass them to Batch
大家早上好,
我目前正在编写一个小 batch/jscript/hta 程序。
在下面的程序中,我读取了一个文本输入字段,将文本传递给批处理并在那里显示:
<!-- :: Batch section
@echo off
setlocal
for /F "delims=" %%a in ('mshta.exe "%~F0"') do set "result=%%a"
echo End of HTA window, reply: "%result%"
pause
goto :EOF
-->
<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" SYSMENU="no" >
<TITLE>HTA Buttons</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(374,400);
function myFunction() {
var x = document.getElementById("myText").value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.GetStandardStream(1).WriteLine(x);
window.close();
}
</SCRIPT>
</HEAD>
<BODY>
<h3>A demonstration of how to access a Text Field</h3>
<input type="text" id="myText" value="0123">
<p>Click the "Login" button to get the text in the text field.</p>
<button onclick="myFunction()">Login</button>
</BODY>
</HTML>
效果很好。
现在我的问题是:
如何读取两个文本输入字段并将它们传递给批处理?
我总是在 Jscript 部分出错!
在此先感谢,我希望有人能帮助我。
如果您需要 return 多个值,最简单的方法是将它们与分隔符连接起来并正确配置 for /f
以将读取的行拆分为单独的标记
<!-- :: Batch section
@echo off
setlocal enableextensions disabledelayedexpansion
rem Defined which tokens we need and the delimiter between them
for /F "tokens=1,2 delims=|" %%a in ('mshta.exe "%~F0"') do (
set "field1=%%a"
set "field2=%%b"
)
echo End of HTA window, reply: "%field1%" "%field2%"
pause
goto :EOF
-->
<HTML><HEAD><HTA:APPLICATION SCROLL="no" SYSMENU="no" >
<TITLE>HTA Buttons</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(374,400);
function myFunction() {
new ActiveXObject("Scripting.FileSystemObject")
.GetStandardStream(1)
.WriteLine(
[ // Array of elements to return joined with the delimiter
document.getElementById("myText").value
, document.getElementById("myText2").value
].join('|')
);
window.close();
};
</SCRIPT>
</HEAD>
<BODY>
<h3>A demonstration of how to access a Text Field</h3>
<input type="text" id="myText" value="0123">
<input type="text" id="myText2" value="4567">
<p>Click the "Login" button to get the text in the text field.</p>
<button onclick="myFunction()">Login</button>
</BODY>
</HTML>
大家早上好,
我目前正在编写一个小 batch/jscript/hta 程序。
在下面的程序中,我读取了一个文本输入字段,将文本传递给批处理并在那里显示:
<!-- :: Batch section
@echo off
setlocal
for /F "delims=" %%a in ('mshta.exe "%~F0"') do set "result=%%a"
echo End of HTA window, reply: "%result%"
pause
goto :EOF
-->
<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" SYSMENU="no" >
<TITLE>HTA Buttons</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(374,400);
function myFunction() {
var x = document.getElementById("myText").value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.GetStandardStream(1).WriteLine(x);
window.close();
}
</SCRIPT>
</HEAD>
<BODY>
<h3>A demonstration of how to access a Text Field</h3>
<input type="text" id="myText" value="0123">
<p>Click the "Login" button to get the text in the text field.</p>
<button onclick="myFunction()">Login</button>
</BODY>
</HTML>
效果很好。
现在我的问题是: 如何读取两个文本输入字段并将它们传递给批处理? 我总是在 Jscript 部分出错!
在此先感谢,我希望有人能帮助我。
如果您需要 return 多个值,最简单的方法是将它们与分隔符连接起来并正确配置 for /f
以将读取的行拆分为单独的标记
<!-- :: Batch section
@echo off
setlocal enableextensions disabledelayedexpansion
rem Defined which tokens we need and the delimiter between them
for /F "tokens=1,2 delims=|" %%a in ('mshta.exe "%~F0"') do (
set "field1=%%a"
set "field2=%%b"
)
echo End of HTA window, reply: "%field1%" "%field2%"
pause
goto :EOF
-->
<HTML><HEAD><HTA:APPLICATION SCROLL="no" SYSMENU="no" >
<TITLE>HTA Buttons</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(374,400);
function myFunction() {
new ActiveXObject("Scripting.FileSystemObject")
.GetStandardStream(1)
.WriteLine(
[ // Array of elements to return joined with the delimiter
document.getElementById("myText").value
, document.getElementById("myText2").value
].join('|')
);
window.close();
};
</SCRIPT>
</HEAD>
<BODY>
<h3>A demonstration of how to access a Text Field</h3>
<input type="text" id="myText" value="0123">
<input type="text" id="myText2" value="4567">
<p>Click the "Login" button to get the text in the text field.</p>
<button onclick="myFunction()">Login</button>
</BODY>
</HTML>