startควรเป็นทิศทางที่ถูกต้องอยู่แล้ว อย่างไรก็ตาม/bแนบกับคอนโซลเดียวกัน ตอนนี้ปัญหาคือว่าเมื่อปิดหน้าต่างคอนโซลกระบวนการใด ๆ ที่เกี่ยวข้องกับคอนโซลนี้ก็จะถูกปิดเช่นกัน
คุณสามารถใช้startโดยไม่ต้อง/bจากนั้นมันจะทำงานในคอนโซลใหม่ หากคุณต้องการเรียกใช้ในพื้นหลังโดยไม่มีหน้าต่างคอนโซลคุณจำเป็นต้องใช้เครื่องมือ VBScript หรือเครื่องมือบุคคลที่สาม: เรียกใช้ไฟล์แบตช์ในวิธีที่ซ่อนอยู่อย่างสมบูรณ์
อย่างไรก็ตามในกรณีนี้คุณจะไม่เห็นเอาต์พุต stdout / stderr อีกต่อไป คุณสามารถเปลี่ยนเส้นทางไปยังไฟล์โดยห่อไว้ในการcmd /c your_command > stdout.txt 2> stderr.txtโทรและเริ่มต้นด้วยวิธีการดังกล่าวข้างต้น (VBScript เครื่องมือของบุคคลที่สาม, ... )
หรือคุณสามารถซ่อนหน้าต่างคอนโซลของคุณเองก่อนที่คุณจะออก ฉันเพิ่งเขียนโปรแกรมบรรทัดเดียวเล็กน้อยซึ่งทำตรงนั้น (ซอร์สโค้ดเป็นพื้นShowWindow(GetConsoleWindow(), SW_HIDE)): http://share.cherrytree.at/showfile-24286/hide_current_console.exe
วิธีนี้คุณสามารถใช้start /bและเมื่อคุณต้องการ "ปิด" คอนโซลของคุณ (ซ่อนทางเทคนิค) คุณจะเรียกใช้hide_current_console & exitซึ่งจะซ่อนคอนโซลแล้วปิดกระบวนการ cmd.exe (ไม่ใช่กระบวนการหลาม) - ในหนึ่งบรรทัด เนื่องจากคุณไม่สามารถพิมพ์exitหลังจากคอนโซลถูกซ่อนอยู่แล้ว
&) และฉันจะแนะนำให้ใช้disownnohup