นี่คือชุดวิธีการของฉันในการบรรลุเป้าหมายนั้น - และอื่น ๆ - ที่เป็นไปได้ฉันได้พยายามส่งคืน PID ของกระบวนการเริ่มต้นด้วย (สคริปต์ที่เชื่อมโยงทั้งหมดสามารถดาวน์โหลดและบันทึกด้วยชื่อใดก็ได้ที่คุณสะดวก):
1) โซลูชันIEXPRESSสามารถใช้ได้แม้ในเครื่องวิน 95/98 รุ่นเก่า Iexpress เป็นเครื่องมือโบราณจริงๆที่ยังคงมาพร้อมกับ Windows เนื่องจากอาร์กิวเมนต์ยอมรับเฉพาะคำสั่งและอาร์กิวเมนต์เท่านั้น
ตัวอย่างการใช้งาน:
call IEXPhidden.bat "cmd /c myBat.bat" "argument"
2) SCHTASKS - ยอมรับเพียงสองอาร์กิวเมนต์ - คำสั่งและอาร์กิวเมนต์ตรวจสอบด้วยว่าเริ่มต้นด้วยสิทธิ์ที่สูงขึ้นหรือไม่และหากเป็นไปได้ให้รับ PID ของกระบวนการด้วย WEVTUTIL (มีให้จาก Vista ขึ้นไปดังนั้น Windows เวอร์ชันใหม่กว่าจะได้รับ PID)
ตัวอย่างการใช้งาน:
call SCHPhidden.bat "cmd /c myBat.bat" "argument"
3) 'WScript.Shell' - สคริปต์เป็นกระดาษห่อหุ้มแบบเต็มของ 'WScript.Shell' และตัวเลือกที่เป็นไปได้ทั้งหมดสามารถตั้งค่าได้ผ่านตัวเลือกบรรทัดคำสั่งมันเป็นไฮบริด jscript / batch และสามารถเรียกได้ว่าเป็นค้างคาว
ตัวอย่างการใช้งาน (สำหรับข้อมูลเพิ่มเติมพิมพ์วิธีใช้ด้วย '-h'):
call ShellRunJS.bat "notepad.exe" -style 0 -wait no
4) 'Win32_ProcessStartup' - เสื้อคลุมแบบเต็มอีกครั้งและตัวเลือกทั้งหมดสามารถเข้าถึงได้ผ่านอาร์กิวเมนต์บรรทัดคำสั่งคราวนี้เป็น WSF / batch hybrid กับ Jscript บางตัวและโค้ด VBScript บางส่วน แต่จะส่งคืน PID ของกระบวนการที่เริ่มต้นหากกระบวนการคือ ไม่ได้ซ่อนตัวเลือกบางอย่างเช่นพิกัด X / Y สามารถใช้ได้ (ไม่สามารถใช้ได้กับทุกไฟล์ปฏิบัติการ - แต่ตัวอย่างเช่น cmd.exe ยอมรับพิกัด)
ตัวอย่างการใช้งาน (สำหรับข้อมูลเพิ่มเติมพิมพ์วิธีใช้ด้วย '-h'):
call win32process.bat "notepad" -arguments "/A openFile.txt" -showWindows 0 -title "notepad"
5). วิธีการแก้ปัญหา NET ใช้ตัวเลือกส่วนใหญ่ของตัวเลือก ProcessStartInfo (แต่ในตอนท้ายฉันเหนื่อยเกินไปที่จะรวมทุกอย่าง):
ตัวอย่างการใช้งาน (สำหรับข้อมูลเพิ่มเติมพิมพ์วิธีใช้ด้วย '-h'):
call ProcessStartJS.bat "notepad" -arguments "/A openFile.txt" -style Hidden -directory "." -title "notepad" -priority Normal