Sto creando questa app HTA con JScript che scrive un file BAT e lo apre in cmd
in seguito.Esecuzione di file batch da JScript in HTA
Se apro manualmente il file BAT creato da windows, funziona come dovrebbe.
Quando lo apro tramite il mio HTA, il file si apre ma emette solo Echo e mette in pausa.
Si prega di tenere presente, sono molto nuovo alla programmazione.
Ecco il 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"); }
Questo è il file Batch.
@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
E l'HTML
<form>
<input type="button" value="Write Bat" onClick="writeBat()">
<input type="button" value="Run Bat" onClick="runBat()">
</form>
aggiungere uno 'echo% cd%' nel file batch per controllare la directory in esecuzione e, se necessario, aggiungere ulteriore riga 'pushd c: \ directory'. – npocmaka
JavaScript e JScript mentre la sintassi è simile sono [non equivalenti] (http://stackoverflow.com/a/135256/692942). Quello che hai scritto qui è JScript. – Lankymart
Come ho detto nel post, sono molto nuovo in questo. Grazie per aver chiarito la cosa di Jscript. Per quanto riguarda la risposta, '% cd%' mostra il percorso del desktop quindi ho aggiunto 's.WriteLine ('pushd"% ~ dp0 "');' in alto e funziona !! Grazie mille! – Jon