【发布时间】:2018-02-22 16:05:48
【问题描述】:
【问题讨论】:
-
你的批次到底是做什么的?
-
有人需要输入序列号并按名称批量搜索特定文件并打印,我已经这样做了。我只需要一个输入类型,它必须输入 SN 并按下一步,然后批处理完成其余的工作
-
请edit您的问题并添加您的批处理代码!
标签: user-interface batch-file cmd hta
【问题讨论】:
标签: user-interface batch-file cmd hta
简而言之,你需要做的就是
获取.hta文件内标准输出流的引用,并将字段内容写入此输出
使用for /f 命令从批处理文件执行.hta,以处理发送到标准输出的数据。
唯一的“问题”是您需要使用.hta 文件的完整路径显式调用mshta.exe 可执行文件。
serialNumber.hta
<HTML>
<HEAD>
<HTA:APPLICATION
ID = "serialHTA"
APPLICATIONNAME = "serialHTA"
VERSION = "0.1"
NAVIGABLE = "yes"
SHOWINTASKBAR = "yes"
SINGLEINSTANCE = "yes"
WINDOWSTATE = "normal"
BORDER = "normal"
BORDERSTYLE = "normal"
INNERBORDER = "no"
CAPTION = "yes"
MINIMIZEBUTTON = "yes"
MAXIMIZEBUTTON = "yes"
SYSMENU = "yes"
SCROLL = "yes"
SCROLLFLAT = "yes"
CONTEXTMENU = "yes"
SELECTION = "yes"
/>
<TITLE>input serial number</TITLE>
<SCRIPT language="Javascript">
function closeHTA(sendOutput){
if (sendOutput){
(new ActiveXObject('Scripting.FileSystemObject'))
.GetStandardStream(1)
.WriteLine(
document.getElementById('serialNumber').value
);
};
window.close();
}
</SCRIPT>
</HEAD>
<BODY>
<label for="serialNumber">serial:</label>
<input type="text" id="serialNumber">
<br>
<button onclick="closeHTA(true);">ok</button>
<button onclick="closeHTA();">cancel</button>
</BODY>
</HTML>
serialNumber.cmd
@echo off
setlocal enableextensions disabledelayedexpansion
set "serialNumber="
for /f "delims=" %%a in ('mshta.exe "%~dp0\serialnumber.hta"') do set "serialNumber=%%a"
if defined serialNumber (
echo Serial number: %serialNumber%
) else (
echo No serial number provided
)
【讨论】:
或者,您可以像这样从一个文件运行它
<!-- :: Batch section
@echo off
setlocal enableextensions disabledelayedexpansion
set "serialNumber="
for /f "delims=" %%a in ('mshta.exe "%~F0"') do set "serialNumber=%%a"
if defined serialNumber echo %serialNumber%
pause
-->
<HTML>
<HEAD>
<HTA:APPLICATION
ID = "serialHTA"
APPLICATIONNAME = "serialHTA"
VERSION = "0.1"
NAVIGABLE = "yes"
SHOWINTASKBAR = "yes"
SINGLEINSTANCE = "yes"
WINDOWSTATE = "normal"
BORDER = "normal"
BORDERSTYLE = "normal"
INNERBORDER = "no"
CAPTION = "yes"
MINIMIZEBUTTON = "yes"
MAXIMIZEBUTTON = "yes"
SYSMENU = "yes"
SCROLL = "yes"
SCROLLFLAT = "yes"
CONTEXTMENU = "yes"
SELECTION = "yes"
/>
<TITLE>input serial number</TITLE>
<SCRIPT language="Javascript">
function closeHTA(sendOutput){
if (sendOutput){
(new ActiveXObject('Scripting.FileSystemObject'))
.GetStandardStream(1)
.WriteLine(
document.getElementById('serialNumber').value
);
};
window.close();
}
</SCRIPT>
</HEAD>
<BODY>
<label for="serialNumber">serial:</label>
<input type="text" id="serialNumber">
<br>
<button onclick="closeHTA(true);">ok</button>
<button onclick="closeHTA();">cancel</button>
</BODY>
</HTML>
【讨论】: