วิธีการเรียกใช้ไฟล์ปฏิบัติการโดยไม่มีนามสกุล 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.