Como executar o arquivo .js a partir de uma linha de comando no Windows?


15

Eu tenho um atalho com 'target' "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js".

Eu quero executar isso a partir de um arquivo em lotes, então copiei a "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"linha de comando into cmd.exe e pressionei enter. Nada aconteceu.

Como posso executar a "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"partir de uma linha de comando no Windows7?

atualizar

o arquivo js contém

var WshShell = new ActiveXObject("Wscript.Shell");
WshShell.run("java -Dlog.dir=%TEMP% -jar taf-loader.jar", 0, false);
WScript.exit;

Tentei executar o arquivo js com os dois Wscript.exee, Cscript.execomo o @Serge sugeriu, mas nada funcionou = o programa iniciado por um clique duplo não foi iniciado. Nenhum erro também.

C:\>Cscript.exe "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.


C:\>Wscript.exe "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"

C:\>

Qual idioma é o arquivo .js escrito em JavaScript ou JScript?
Robert

@ Robert: Eu não sei. Não é o meu roteiro. É um produto comercial que eu quero poder começar com um clique ou de uma maneira muito rápida (Windows7). Se eu fixar o que está sendo executado, não será iniciado na próxima vez.
Radek

Respostas:


14

Você tem duas opções:

Cscript.exe "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"

ou

Wscript.exe "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"

O primeiro inicia a versão da linha de comando do Windows Scripting Host e o último está iniciando a versão da janela.

As opções da linha de comando estão documentadas aqui: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/cscript

e aqui: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wscript

No arquivo de script, você deve usar o caminho completo para o seu arquivo jar e, possivelmente, o caminho completo para o java.exe

Como alternativa, para permitir a java.exelocalização do tar-loader.jararquivo, você deve alterar o diretório atual para o que contém esse arquivo, portanto, antes de chamar wscriptmakecd "C:\Users\Public\TestPro\TestPro Automation Framework\"

Como você mencionou que gosta de executar esse script em um único toque, também pode criar um atalho na área de trabalho com uma linha de comando definida Wscript.exe "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"e um diretório de trabalho definido comoC:\Users\Public\TestPro\TestPro Automation Framework\


Concordo com Serge, por que não executar java -Dlog.dir=%TEMP% -jar taf-loader.jardiretamente da linha de comando ou lote? Por que esse método de rolagem? (Obviamente, java.exe tem de estar no PATH.)
Karan

@ Karan & Serge: Veja meu comentário na minha pergunta. Não é o meu roteiro. Eu não quero modificá-lo. Talvez eu possa usar o código para criar meu próprio arquivo em lotes ou algo assim. Eu prefiro não modificar nada.
Radek

"Talvez eu possa usar o código dele para criar meu próprio arquivo em lotes ou algo assim." - Sim, então o que acontece quando você faz?
21412 Karan

Foi apenas um pensamento. Não sei como fazer isso agora e não tenho certeza se isso pode causar problemas, porque inicio o programa em um lote desse tipo e não está 100% correto.
Radek

@Radek o tar-loader.jar reside no mesmo diretório 'C: \ Users \ Public \ TestPro \ TestPro Automation Framework \'?
Serge

2

Se você pode executar 'java' em uma janela do console sem erros, então

1) Crie um arquivo de texto na área de trabalho chamado 'taf.txt'

2) Digite "java -Dlog.dir =% TEMP% -jar taf-loader.jar" no arquivo de texto e salve-o

3) Renomeie o arquivo para 'taf.bat'

Feito.

O uso de um host de script para iniciar um script que inicia um shell que inicia um programa java é muito longo.

Pense nisso em termos do que você deseja alcançar - você deseja que o programa seja iniciado com o clique de um ícone.

O arquivo em lotes é a maneira mais rápida de conseguir isso no win7.

Se você estivesse usando um sistema operacional que pudesse iniciar nativamente um script Javascript sem mexer, seria uma boa maneira de iniciá-lo, mas esse script não funcionaria em nada além de janelas (a menos que o ActiveX seja portado agora - há muito tempo tempo desde que eu o usei).

Fonte: Desenvolvedor Java profissional há mais de 10 anos


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.