Я создаю это приложение HTA с JScript, которое записывает файл BAT и открывает его в cmd
.Запуск пакетного файла от JScript в HTA
Если я вручную открываю созданный BAT-файл из окон, он работает так, как должен.
Когда я открываю его через свой HTA, файл открывается, но выводит только эхо и паузу.
Пожалуйста, имейте в виду, я очень новичок в программировании.
Это JScript.
// Write the Bat file
// When run from HTA all I get is the "Echo Done" and "Pause"
// When I run from Windows without HTA, all of it works.
function writeBat() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:/test/test.bat");
s.WriteLine('@echo off');
s.WriteLine('set output=C:/test/new/');
s.WriteLine('FOR %%a in (*.mkv) DO ("C:/Program Files/MKVToolNix/mkvmerge.exe" -o "%output%%%~na.mkv" "%%a")');
s.WriteLine('echo Done.');
s.WriteLine('pause');
s.Close(); }
// Run the Bat file.
function runBat() {
var MyObject = new ActiveXObject("wscript.shell");
MyObject.Run("C:/test/test.bat"); }
Описание Пакетный файл.
@echo off
set output=C:/test/new/
FOR %%a in (*.mkv) DO ("C:/Program Files/MKVToolNix/mkvmerge.exe" -o "%output%%%~na.mkv" "%%a")
echo Done.
pause
И HTML
<form>
<input type="button" value="Write Bat" onClick="writeBat()">
<input type="button" value="Run Bat" onClick="runBat()">
</form>
добавить один 'echo% cd%' в пакетном файле, чтобы проверить текущий каталог и при необходимости добавить дополнительную строку 'pushd c: \ directory'. – npocmaka
JavaScript и JScript, когда синтаксис подобен, [не эквивалентны] (http://stackoverflow.com/a/135256/692942). Здесь вы написали JScript. – Lankymart
Как я уже сказал в сообщении, я очень новичок в этом. Спасибо, что прояснил тему Jscript. Что касается ответа, '% cd%' показывает путь к рабочему столу, поэтому я добавил 's.WriteLine ('pushd"% ~ dp0 "');' наверху и он работает !! Спасибо огромное! – Jon