Як запустити файл .js з командного рядка у Windows?


15

У мене є ярлик із пунктом "target" "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js".

Я хочу запустити це з пакетного файлу, тому я скопіював "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"командний рядок cmd.exe і натиснув клавішу enter. Нічого не сталося.

Як я можу запустити "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"з командного рядка в Windows7?

оновлення

файл js містить

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

Я спробував запустити файл js з обома, Wscript.exeі Cscript.exeяк запропонував @Serge, але нічого не вийшло = програма, яку я запускаю подвійним клацанням, ще не запустилася. Помилки також немає.

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:\>

Якою мовою файл .js написаний у JavaScript або JScript?
Роберт

@Robert: Я не знаю. Це не мій сценарій. Це комерційний продукт, який я хочу мати можливість запустити одним клацанням миші або дуже швидким способом (Windows7). Якщо я зафіксую, що працює, він не запуститься наступного разу.
Радек

Відповіді:


14

У вас є два варіанти:

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

або

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

Перша запускає версію командного рядка Windows Scripting Host, а остання запускає версію вікна.

Параметри командного рядка задокументовані тут: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/cscript

і тут: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wscript

У файлі сценарію ви повинні використовувати повний шлях до файлу jar і, можливо, повний шлях до java.exe

Крім того, щоб дозволити java.exeзнайти tar-loader.jarфайл, слід змінити поточний каталог на той, що містить цей файл, тому перед викликом wscriptmakecd "C:\Users\Public\TestPro\TestPro Automation Framework\"

Як ви згадали, що вам подобається запускати цей скрипт одним дотиком, ви також можете створити ярлик на робочому столі, у якому встановлено командний рядок та встановлений Wscript.exe "C:\Users\Public\TestPro\TestPro Automation Framework\taf.js"робочий каталогC:\Users\Public\TestPro\TestPro Automation Framework\


Я згоден з Сержем, чому б не запустити java -Dlog.dir=%TEMP% -jar taf-loader.jarз командного рядка чи партії безпосередньо? Чому цей метод обходу? (Очевидно, що java.exe має бути в PATH.)
Каран

@Karan & Serge: Дивіться мій коментар під моїм запитанням. Це не мій сценарій. Я не хочу його змінювати. Можливо, я можу використовувати код з нього, щоб створити власний пакетний файл чи щось подібне. Я вважаю за краще нічого не змінювати.
Радек

"Можливо, я можу використовувати код з нього, щоб створити власний пакетний файл чи щось подібне." - Так, так що станеться, коли ти робиш?
Каран

Це було все-таки. Я не знаю, як це зробити зараз, і я не впевнений, чи можуть це викликати неполадки, чому я запускаю програму в такій партії, і це не на 100% правильно.
Радек

@Radek чи обидва tar-loader.jar проживають у тому самому каталозі "C: \ Users \ Public \ TestPro \ TestPro Automation Framework \"?
Серж

2

Якщо ви можете запустити "java" у вікні консолі без помилок, тоді

1) Створіть текстовий файл на робочому столі під назвою "taf.txt"

2) Введіть "java -Dlog.dir =% TEMP% -jar taf-loader.jar" у текстовий файл і збережіть його

3) Перейменуйте файл у "taf.bat"

Зроблено.

Використання хост сценаріїв для запуску скрипту, який запускає оболонку, яка запускає програму java, занадто довго закручена.

Подумайте про це з точки зору того, чого ви хочете досягти - ви хочете, щоб програма запускалася натисканням піктограми.

Пакетний файл - це найшвидший спосіб досягти цього в win7.

Якщо ви використовували ОС, яка міг би запустити скрипт Javascript, не маючи з цього приводу, це був би приємний спосіб запустити його, але цей сценарій не працював би ні на що, окрім Windows (якщо ActiveX зараз не перенесений - довго час, відколи я його використав).

Джерело: Професійний Java Developer більше 10 років


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.