วิธีการเรียกใช้ไฟล์ปฏิบัติการโดยไม่มีนามสกุล EXE โดยใช้สคริปต์ CMD


19

สถานการณ์คือฉันมีแอปพลิเคชั่นแบบพกพาที่จำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อม วิธีอื่นก็พยายามที่จะตั้งค่าเป็นในข้อมูลผู้ใช้โปรแกรม dir

เพื่อหลีกเลี่ยงการรันโปรแกรมปฏิบัติการในโหมดที่ไม่ใช่แบบพกพา (เพื่อหลีกเลี่ยงการอนุญาตให้ทำงานโดยไม่มีพารามิเตอร์ใด ๆ ) ฉันลบส่วนขยาย ".exe" ของไฟล์ แต่จากนั้นฉันไม่สามารถเรียกใช้ไม่เพียงด้วยเมาส์ (ซึ่งฉันต้องการ) แต่ยังผ่านstartคำสั่ง .

มีวิธีการเรียกใช้ไฟล์ปฏิบัติการดังกล่าวที่ไม่มีนามสกุล exe?


คำถามของคุณไม่ชัดเจน หากคุณลบส่วนขยาย. EXE โดยไม่ตั้งใจทำไมคุณไม่สามารถเพิ่มกลับได้? อะไรทำให้คุณไม่ทำเช่นนั้น?
— Karan

ฉันได้ลบมันไปโดยไม่ตั้งใจเพื่อให้โปรแกรมทำงานโดยไม่มีพารามิเตอร์ใด ๆ ฉันต้องการความปลอดภัยในการใช้งานโปรแกรมด้วยตัวเลือกเมื่อเริ่มต้นเท่านั้น
— rsk82

คำตอบ:


14

ใช่ - เพียงป้อนชื่อไฟล์แบบเต็มของโปรแกรมมักจะใช้งานได้ ( .exeความต้องการมีอยู่ในเปลือก GUI เท่านั้น)

(มันอาจเป็นไปได้ว่าไฟล์ที่ต้องการขยายแม้ว่า - ดังนั้นหากคุณไม่สามารถได้รับการทำงานเปลี่ยนชื่อไปหรือและลองอีกครั้ง.)MyProgramMyProgram.notexeMyProgram.lol


1
สิ่งนี้ทำให้ฉันประหลาดใจเมื่อฉันเปลี่ยนชื่อไฟล์ซิปแบบขยายตัวเองจาก.exeเป็น.zipพยายามเปิดไฟล์ผ่าน cmd.exe และมันยังคงรันตัวแยกไฟล์เองแทนการเปิด WinZip
— grawity

ฉันไม่ทราบเคล็ดลับในการเปลี่ยนส่วนขยายโปรแกรมนั้นอาจต้องมีตัวจำลองแบบหนึ่งซึ่งไม่ง่ายนัก แต่อย่างไรก็ตามฉันพบคนเกียจคร้านอีกนั่นคือแอปพลิเคชั่นนั้นต้องการตัวประมวลผลหลักเพื่อให้มีชื่อที่เข้มงวด
— rsk82

1
สิ่งที่เริ่มต้นด้วยMZจะถูกดำเนินการโดย cmd ตรวจสอบด้านล่าง
— ПетърПетров

17

ไฟล์ใด ๆ ที่มีนามสกุลและสองไบต์แรกMZจะถือว่าเป็น EXE

ลองต่อไปนี้:

  1. สร้างa.txtไฟล์ ใหม่
  2. พิมพ์ลงในนั้นMZบันทึก
  3. เปิดcmdไปที่โฟลเดอร์ของมัน
  4. พิมพ์a.txtและดูข้อความแสดงข้อผิดพลาด

แทนที่MZด้วยMSแล้วลองใหม่อีกครั้งคราวนี้แผ่นจดบันทึกจะทำงานโดยเปิดไฟล์


1
ใช้งานไม่ได้ใน Windows 10 มันแสดง'' is not recognized as an internal or external command, operable program or batch file.ข้อผิดพลาดเสมอ
— phuclv

ฉันเพิ่งลองที่บ้านด้วยใน Windows 10 Pro และมันแสดงข้อผิดพลาดจริง ๆThis version of D:\test.txt is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.ก่อนหน้านี้ฉันใช้ Windows 10 LTSB ในที่ทำงานและมันใช้งานไม่ได้
— phuclv

มันยังคงใช้งานได้บน Windows 10 X64 ของฉันเช่นเดียวกับข้างบน
— ПетърПетров

หากคุณพยายามเรียกใช้ไฟล์โดยไม่มีนามสกุลไฟล์จะทำให้เกิด'file' is not recognizedข้อผิดพลาด
— Stevoisiak

2

ฉันพยายามเรียกใช้กระบวนการจากไฟล์โดยไม่มีนามสกุล. exe เมื่อฉันล้มเหลวจาก cmd.exe ฉันลองทำคำสั่ง powershell นี่คือหนึ่ง:

เริ่มต้นกระบวนการ

เอกสารอธิบายเกี่ยวกับไวยากรณ์เริ่มต้นและ UseShellExecute ด้วยเพียงแค่:

Start-Process -FilePath .\my-program -Wait -NoNewWindow

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

Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow

โปรแกรมของฉันเริ่มต้นและเขียนเอาต์พุตไปยังคอนโซล แค่นี้ก็เพียงพอแล้วสำหรับฉันเพราะฉันต้องการมันเพื่อการทดสอบเท่านั้น

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