วิธีการเรียกใช้ไฟล์. js จากบรรทัดคำสั่งบน windows


15

ฉันมีทางลัดด้วย "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 แนะนำ แต่ไม่มีอะไรทำงาน = โปรแกรมที่ฉันเริ่มต้นด้วย doubleclicking ยังไม่ได้เริ่ม ไม่มีข้อผิดพลาดอย่างใดอย่างหนึ่ง

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

@ Robert: ฉันไม่รู้ มันไม่ใช่สคริปต์ของฉัน เป็นผลิตภัณฑ์เชิงพาณิชย์ที่ฉันต้องการเริ่มต้นด้วยคลิกเดียวหรืออย่างรวดเร็ว (Windows7) ถ้าฉัน pin สิ่งที่กำลังรันมันจะไม่เริ่มในครั้งต่อไป
Radek

คำตอบ:


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/administrator/windows-commands/cscript

และที่นี่: https://docs.microsoft.com/en-us/windows-server/administrator/windows-commands/wscript

ในไฟล์สคริปต์ของคุณคุณควรใช้พา ธ แบบเต็มไปยังไฟล์ jar และอาจเป็นพา ธ แบบเต็มไปยัง java.exe

อีกทางเลือกหนึ่งเพื่ออนุญาตให้java.exeค้นหาtar-loader.jarไฟล์คุณควรเปลี่ยนไดเรกทอรีปัจจุบันเป็นไดเรกทอรีที่มีไฟล์นี้ดังนั้นก่อนwscriptทำการเรียกใช้cd "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\


ฉันเห็นด้วยกับ Serge ทำไมไม่เรียกใช้java -Dlog.dir=%TEMP% -jar taf-loader.jarจากบรรทัดคำสั่งหรือแบทช์โดยตรง ทำไมวิธีการปัดเศษนี้ (เห็นได้ชัดว่า java.exe ต้องอยู่ใน PATH)
Karan

@Karan & Serge: ดูความคิดเห็นของฉันภายใต้คำถามของฉัน มันไม่ใช่สคริปต์ของฉัน ฉันไม่ต้องการแก้ไข บางทีฉันสามารถใช้รหัสจากมันเพื่อสร้างไฟล์แบตช์ของตัวเองหรืออะไรทำนองนั้น ฉันไม่ต้องการแก้ไขอะไรเลย
Radek

"บางทีฉันสามารถใช้รหัสจากมันเพื่อสร้างไฟล์แบตช์ของตัวเองหรืออะไรทำนองนั้น" - ใช่แล้วจะเกิดอะไรขึ้นเมื่อคุณทำ
Karan

มันเป็นเพียงแค่แม้ว่า ฉันไม่ทราบวิธีการที่จะทำตอนนี้และฉันไม่แน่ใจว่าสามารถทำให้เกิดปัญหาใด ๆ ทำไมฉันเริ่มโปรแกรมในชุดดังกล่าวและมันไม่ถูกต้อง 100%
Radek

@Radek ทั้ง tar-loader.jar อยู่ในไดเรกทอรี 'C: \ Users \ Public \ TestPro \ TestPro Automation Framework \' เดียวกันหรือไม่
Serge

2

หากคุณสามารถเรียกใช้ 'java' ในหน้าต่างคอนโซลโดยไม่มีข้อผิดพลาด

1) สร้างไฟล์ข้อความบนเดสก์ท็อปของคุณชื่อ 'taf.txt'

2) ป้อน "java -Dlog.dir =% TEMP% -jar taf-loader.jar" ลงในไฟล์ข้อความและบันทึก

3) เปลี่ยนชื่อไฟล์เป็น 'taf.bat'

เสร็จสิ้น

การใช้โฮสต์การเขียนสคริปต์เพื่อเริ่มต้นสคริปต์ซึ่งเปิดตัวเชลล์ที่เรียกใช้โปรแกรมจาวานั้นใช้เวลานานเกินไป

คิดในแง่ของสิ่งที่คุณต้องการบรรลุ - คุณต้องการให้โปรแกรมเปิดใช้งานด้วยการคลิกไอคอน

ไฟล์ชุดเป็นวิธีที่เร็วที่สุดเพื่อให้บรรลุใน win7

หากคุณใช้ระบบปฏิบัติการที่สามารถเริ่มต้นใช้งานสคริปต์ Javascript ได้โดยไม่ยุ่งเกี่ยวกับมันจะเป็นวิธีที่ดีในการเปิดใช้งาน แต่สคริปต์นั้นไม่สามารถทำงานกับสิ่งอื่นนอกจาก windows (เว้นแต่ว่า ActiveX นั้นได้รับการรังเพลิงแล้ว เวลาตั้งแต่ฉันใช้มัน)

ที่มา: Professional Java Developer มานานกว่า 10 ปี


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.