2013-02-12 2 views
1

Я создал файл HTA, который имеет пользовательскую форму для сбора данных от пользователя. Я вызываю этот HTA-файл из командного файла.с использованием HTA с командным файлом

После чтения пользовательских входов я хочу, чтобы входные значения передавались в пакетный файл из HTA. Можно ли достичь?

+0

проблема с сохранением и чтением их в файл? – npocmaka

+0

Я сделал так же, как вы сказали. Работает. THunk you – Tjs

ответ

1

Да, вы можете заставить HTA-файл возвращать значения в пакетный файл, но он не может сделать это напрямую. Вы должны использовать Javascript для создания текстового файла с предоставленными пользователем значениями, тогда ваш командный файл может обрабатывать значения. Вот сайт с несколькими методами в списке для чтения и записи текстовых файлов:

http://www.c-point.com/JavaScript/articles/file_access_with_JavaScript.htm

Используя один из них, я создал очень простой пример, чтобы продемонстрировать, как это делается:

SimpleForm.hta

<HTML> 
    <HEAD> 
    <SCRIPT language="JavaScript"> 
     function WriteFile() { 
     var fso = new ActiveXObject("Scripting.FileSystemObject"); 
     var fh = fso.CreateTextFile("c:\\Output.txt", true); 
     fh.WriteLine(myForm.FN.value + '~' + myForm.LN.value); 
     fh.Close(); 
     } 
    </SCRIPT> 
    </HEAD> 
    <BODY> 
    <FORM name="myForm"> 
     <P>First Name: <INPUT name="FN" type="text"></P> 
     <P>Last Name: <INPUT name="LN" type="text"></P> 
     <P><INPUT type="button" value="Save Values" onclick="WriteFile();"></P> 
    </FORM> 
    <P>After you click 'save', close the window.</P> 
    </BODY> 
</HTML> 

Теперь пакетный файл:

@echo off 

start /wait SimpleForm.hta 
for /f "tokens=1,2 delims=~" %%i in (C:\Output.txt) do (
    set FirstName=%%i 
    set LastName=%%j 
) 

del C:\Output.txt 

echo The user entered %FirstName% %LastName% for their name. 

Вам нужно будет разобраться с сложностями пользователя, введя символ разделителя (тильда в моем примере) в одно из текстовых полей и отбросив синтаксический анализ параметра инструкции for. Вы можете использовать неясный символ, который пользователь не будет вводить, например.

+0

Спасибо другу :) – Tjs

Смежные вопросы