ในขณะนี้ไฟล์แบทช์ของฉันมีลักษณะเช่นนี้:
myprogram.exe param1
โปรแกรมเริ่มทำงาน แต่ DOS Window ยังคงเปิดอยู่ ฉันจะปิดมันได้อย่างไร
ในขณะนี้ไฟล์แบทช์ของฉันมีลักษณะเช่นนี้:
myprogram.exe param1
โปรแกรมเริ่มทำงาน แต่ DOS Window ยังคงเปิดอยู่ ฉันจะปิดมันได้อย่างไร
คำตอบ:
คุณสามารถใช้คีย์เวิร์ด exit นี่คือตัวอย่างจากไฟล์แบตช์ของฉัน:
start myProgram.exe param1
exit
exit
ลงในแบทช์ไฟล์เล็กน้อย
start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
ใช้คำสั่ง start เพื่อป้องกันไฟล์แบตช์ไม่ให้รอโปรแกรม เพียงจำไว้ว่าให้ใส่เครื่องหมายคำพูดคู่ว่างเปล่าไว้หน้าโปรแกรมที่คุณต้องการเรียกใช้หลังจาก "เริ่ม" ตัวอย่างเช่นถ้าคุณต้องการเรียกใช้ Visual Studio 2012 จากชุดคำสั่ง:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
สังเกตคำพูดสองครั้งหลังจากเริ่มต้น
start <window name> <program name>
ดูที่คำสั่ง START คุณสามารถทำได้:
START rest-of-your-program-name
ตัวอย่างเช่นไฟล์ชุดนี้จะรอจนกว่าแผ่นจดบันทึกจะออก:
@echo off
notepad c:\test.txt
อย่างไรก็ตามสิ่งนี้จะไม่:
@echo off
start notepad c:\test.txt
จากคำถามของฉัน:
start /b myProgram.exe params...
ใช้งานได้ถ้าคุณเริ่มโปรแกรมจากเซสชัน DOS ที่มีอยู่
หากไม่เป็นเช่นนั้นให้เรียกสคริปต์ vb
wscript.exe invis.vbs myProgram.exe %*
โฮสต์สคริปต์ของ Windows Run () วิธีการใช้เวลา:
นี่คือ invis.vbs:
set args = WScript.Arguments
num = args.Count
if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if
sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
anArg = args.Item(k)
sargs = sargs & anArg & " "
next
end if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
นี่เป็นสิ่งเดียวที่ทำงานสำหรับฉันเมื่อฉันพยายามเรียกใช้คลาส java จากแบตช์ไฟล์:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
คุณสามารถปรับแต่งstart
คำสั่งตามที่คุณต้องการสำหรับโครงการของคุณโดยทำตามไวยากรณ์ที่เหมาะสม:
Syntax
START "title" [/Dpath] [options] "command" [parameters]
Key:
title : Text for the CMD window title bar (required)
path : Starting directory
command : The command, batch file or executable program to run
parameters : The parameters passed to the command
Options:
/MIN : Minimized
/MAX : Maximized
/WAIT : Start application and wait for it to terminate
/LOW : Use IDLE priority class
/NORMAL : Use NORMAL priority class
/HIGH : Use HIGH priority class
/REALTIME : Use REALTIME priority class
/B : Start application without creating a new window. In this case
^C will be ignored - leaving ^Break as the only way to
interrupt the application
/I : Ignore any changes to the current environment.
Options for 16-bit WINDOWS programs only
/SEPARATE Start in separate memory space (more robust)
/SHARED Start in shared memory space (default)
คุณควรลองสิ่งนี้ มันเริ่มต้นโปรแกรมโดยไม่มีหน้าต่าง มันกะพริบขึ้นมาหนึ่งวินาที แต่จะหายไปอย่างรวดเร็วพอสมควร
start "name" /B myprogram.exe param1
"title"
ตัวเลือกที่มีความสำคัญ หากเส้นทางของโปรแกรมมีช่องว่างมันจะต้องถูกล้อมรอบด้วยคำพูดดังนั้นเราต้องเพิ่ม"title"
เพื่อหลีกเลี่ยงความล้มเหลว
วิธีแก้ "ปัญหาพื้นที่" และการพึ่งพาในท้องถิ่น:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
มีคำตอบมากมายสำหรับคำถามนี้อยู่แล้ว แต่ฉันกำลังโพสต์สิ่งนี้เพื่อชี้แจงสิ่งที่สำคัญแม้ว่าอาจไม่ได้เป็นเช่นนั้นเสมอไป:
Start "C:\Program Files\someprog.exe"
อาจทำให้เกิดปัญหาในบาง windows windows ตามStart
จริง ๆ คาดว่าชุดของอัญประกาศแรกเป็นชื่อเรื่องของ windows ดังนั้นจึงเป็นวิธีที่ดีที่สุดในการแสดงความคิดเห็นเป็นครั้งแรกหรือความคิดเห็นที่ว่างเปล่า:
Start "" "C:\Program Files\someprog.exe"
หรือ
Start "Window Title" "C:\Program Files\someprog.exe"
โซลูชันของฉันทำจาก GUI:
สร้างทางลัดไปยังโปรแกรมที่คุณต้องการเรียกใช้
แก้ไขคุณสมบัติของทางลัด
เปลี่ยนTARGET
ฟิลด์เป็น%COMSPEC% /C "START "" "PROGRAMNAME""
;
เปลี่ยนRUN
ฟิลด์เพื่อย่อให้เล็กสุด
พร้อม! ดูว่าคุณชอบมัน ...
PS: พารามิเตอร์โปรแกรมสามารถแทรกระหว่างเครื่องหมายคำพูดสุดท้ายสองตัว PROGRAMNAME
สตริงสามารถเป็นได้ทั้งชื่อไฟล์, ญาติหรือเส้นทางที่แน่นอน - ถ้าคุณใส่ในเส้นทางที่แน่นอนและลบตัวอักษรไดรฟ์และอัฒภาคแล้วนี้จะทำงานใน thumbdrive ไม่ว่าสิ่งที่ตัวอักษรที่กำหนดโฮสต์คอมพิวเตอร์ไป .. . (หากคุณวางทางลัดไว้ในโฟลเดอร์เดียวกันและนำหน้าชื่อไฟล์โปรแกรมPROGRAMNAME
ด้วย%CD%
ตัวแปรพา ธ จะจับคู่กันเสมอโดยใช้เล่ห์เหลี่ยมเดียวกันในSTART IN
ฟิลด์)
หากไฟล์แบตช์นี้เป็นสิ่งที่คุณต้องการเรียกใช้ตามกำหนดเวลาหรือตลอดเวลา คุณสามารถใช้เครื่องมือกำหนดเวลาของ windows และจะไม่เปิดขึ้นในหน้าต่างเมื่อมันเริ่มไฟล์แบตช์
วิธีเปิดTask Scheduler
:
'cmd'
taskschd.msc
-> ป้อนจากด้านขวาคลิกCreate Basic Task
และทำตามเมนู
หวังว่านี่จะช่วยได้
นี่คือทางออกที่ฉันต้องการ มันมาจากคำตอบของคำถามที่คล้ายกัน
ใช้ VBS Script เพื่อเรียกไฟล์แบตช์:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
คัดลอกบรรทัดด้านบนไปยังเครื่องมือแก้ไขและบันทึกไฟล์ด้วยนามสกุล. VBS