ไฟล์แบตช์: วิธีเปิดหน้าต่างคอนโซลทิ้งไว้


106

ฉันมีไฟล์แบตช์สองไฟล์หนึ่งในนั้นรันไฟล์อื่นเช่น

  1. "ไฟล์แบตช์ของฉัน"> 2. "ไฟล์แบตช์อื่น ๆ "

ฉันได้สร้างทางลัดของไฟล์แบตช์แรกและแก้ไขคุณสมบัติเพื่อเรียกใช้ในลักษณะต่อไปนี้

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

สิ่งที่ฉันต้องการทำ ฉันต้องการให้หน้าต่างคอนโซลเปิดขึ้นหลังจากการเรียกใช้ไฟล์แบตช์เสร็จสิ้น ตอนนี้มันเพิ่งปิดพยายามเล่นรอบ ๆ แฟล็ก cmd ไม่มีผลลัพธ์

แพลตฟอร์ม: Windows7


อัปเดต 1

แก้ไขโครงสร้างตัวอย่างง่ายๆเช่นนี้ใช้ไม่ได้เช่นกันไฟล์แบตช์เดียวเท่านั้นคือไม่มี 2. "Some Other Batch File" ไฟล์แบตช์เดียวที่มี smth เช่นนี้

start /B /LOW /WAIT make package
cmd /K

อัปเดต 2

ทางลัดเดียวกันซึ่งเรียกใช้จาก Explorer ไม่ได้ปิดหน้าต่างคอนโซล แต่หน้าต่างคอนโซลจะปิดลงเมื่อมีการเรียกทางลัดจากรายการที่ตรึงไว้บนแถบงาน

มีแนวคิดในการเปิดหน้าต่างคอนโซลอย่างไร


ฉันคิดว่าคุณต้องการที่My Batch Fileจะอยู่รอบ ๆ ?
Marc B

"ร้อนที่จะออกจากหน้าต่างคอนโซลของไฟล์แบตช์ที่เปิดอยู่" ถูกถามและตอบอย่างชัดเจนมากขึ้นที่นี่: superuser.com/questions/175515/…
oberlies

คำตอบ:


127

หากที่เป็นจริงทั้งหมดแฟ้มชุดจะทำลบและเพิ่มcmd /KPAUSE

start /B /LOW /WAIT make package
PAUSE

จากนั้นเพียงแค่ชี้ทางลัดของคุณเพื่อ"My Batch File.bat"... CMD /Kไม่จำเป็นต้องใช้มันด้วย

อัปเดต

อ่าข้อมูลใหม่ ... คุณกำลังพยายามทำจากทางลัดที่ตรึงไว้บนแถบงาน

ฉันพบสิ่งนี้การเพิ่ม Batch Files ลงในแถบงานของ Windows 7 เช่น Vista / XP Quick Launchโดยมีส่วนที่เกี่ยวข้องด้านล่าง

  1. ขั้นแรกให้ปักหมุดทางลัดสำหรับCMD.EXEแถบงานโดยกดปุ่มเริ่มต้นจากนั้นพิมพ์ "cmd" ในช่องค้นหาคลิกขวาที่ผลการค้นหาแล้วเลือก "ตรึงที่แถบงาน"
  2. คลิกขวาที่ทางลัดบนแถบงาน
  3. คุณจะเห็นรายการที่มี " Command Prompt " และ " Unpin this program from the taskbar "
  4. คลิกขวาที่ไอคอนและเลือกCMD.EXEProperties
  5. ในกล่องสำหรับเป้าหมายไปที่ส่วนท้าย"%SystemRoot%\system32\cmd.exe"และพิมพ์" /C "และเส้นทางและชื่อของไฟล์แบตช์

สำหรับวัตถุประสงค์ของคุณคุณสามารถ:

  1. ใช้/Cและใส่PAUSEท้ายไฟล์แบตช์ของคุณ

    หรือ

  2. เปลี่ยนบรรทัดคำสั่งที่จะใช้/KและลบออกPAUSEจากไฟล์แบตช์ของคุณ

ฉันทำไปแล้วโดยทั่วไปคำถามของฉันไม่ใช่วิธีเรียกไฟล์แบตช์ anohter ...
deimus

จากนั้นเราต้องดูเนื้อหาของไฟล์แบตช์ทั้งสอง
คำพังเพย

โปรดดูคำถามที่ระบุไว้
deimus

ปัญหาเดียวกันการแทนที่ CMD / K ไม่ทำงาน เหตุใดหน้าต่างปลอบใจจึงไม่ปิดหากมีการเรียกใช้ทางลัดจาก Explorer
deimus

13

ที่นี่:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

ดูสิ่งที่คุณทำ:

  1. (cmd / K) เริ่มใหม่อินสแตนซ์ cmd
  2. (& pause) หยุดอินสแตนซ์CURRENT cmd ชั่วคราว

จะแก้ไขได้อย่างไร? โดยใช้ไวยากรณ์ที่ถูกต้องโดยใส่อาร์กิวเมนต์สำหรับอินสแตนซ์ CMD ใหม่:

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"

6

ฉันเพิ่งเขียนบรรทัดสุดท้ายว่าหยุดชั่วคราวมันใช้งานได้ดีกับทั้ง. bat และ. cmd มันจะแสดงข้อความเป็น 'กดปุ่มใดก็ได้เพื่อดำเนินการต่อ'


นี่คือคำตอบที่ถูกต้อง! ควรจะได้รับการโหวตสูงสุด
Patrick Hillert

5

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

pause >nul


ดูเหมือนว่าจะปิดก่อนเวลานั้นอาจมีข้อผิดพลาดในสคริปต์ ลองเปิดพรอมต์ cmd แล้วเรียกใช้จากที่นั่นจากนั้นคุณจะเห็นว่ามีข้อผิดพลาดหรือไม่
Bali C

3

สำหรับการเปิดหน้าต่างคอนโซลทิ้งไว้คุณจะต้องเพิ่มในบรรทัดคำสั่งสุดท้ายในไฟล์แบตช์:

' & pause'

2

คุณสามารถใส่pauseคำสั่งในบรรทัดสุดท้ายของไฟล์แบตช์ของคุณ:

@echo off
echo Hey, I'm just doing some work for you.
pause

จะให้สิ่งนี้เป็นผลลัพธ์:

เฮ้ฉันแค่ทำงานให้คุณ

กดปุ่มใด ๆ เพื่อดำเนินการต่อ ...

หมายเหตุ:การใช้ @echo ป้องกันเพื่อส่งออกคำสั่งก่อนที่จะพิมพ์เอาต์พุต



-1

ในตอนท้ายมันจะเปิดคอนโซลของคุณอีกครั้ง

start cmd 

วิธีนี้ไม่สามารถแก้ปัญหาได้ผู้ใช้ต้องการเปิดหน้าต่างไว้ไม่ใช่เปิดหน้าต่างเก่าขึ้นมาใหม่
อดัม

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