Windows 7 CLI ไม่รู้จักคำสั่งโดยไม่ระบุนามสกุล


2

เห็นได้ชัดว่าฉันได้ไปและทำให้ระบบของฉันแปลก Windows 7 cmd พรอมต์ไม่รับรู้ถึงไฟล์สั่งการหรือแบตช์อีกต่อไปเว้นแต่ฉันจะพิมพ์นามสกุล

C:\Users\Current> xcopy /?
'xcopy' is not recognized as an internal or external command,
operable program or batch file.

นี่คือการแก้ไขโดยมีคุณสมบัติด้วย .exe ส่วนขยาย:

C:\Users\Current> xcopy.exe /?
< ... all of the help for xcopy shows below, as expected ... >

ฉันคิดว่าฉันได้ทำบางสิ่งบางอย่างเพื่อทำลายเส้นทางของฉันเมื่อ xcopy หยุดทำงาน แต่ตั้งค่ากลับไปเป็นชุดขั้นต่ำของสิ่งต่าง ๆ ที่โดยทั่วไปแล้ว Windows ไม่ได้แก้ไข เส้นทางของฉันในปัจจุบันมีดังนี้:

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\KC\Scripts

สิ่งเดียวที่ไม่เป็นมาตรฐานในนั้นคือ C:\KC\Scriptsซึ่งระบุในเส้นทางผู้ใช้ของฉัน ฉันไม่เชื่อว่าสตริงนั้นผิดรูปแบบ แต่อย่างใด สิ่งนี้เกิดขึ้นเมื่อไม่นานมานี้หลังจากติดตั้ง Ruby ผ่าน windows RubyInstaller และเลือกให้มันอัพเดต Path ของฉันโดยอัตโนมัติ ฉันได้ลบสิ่งใดออกจากเส้นทาง แต่สิ่งที่ฉันโพสต์ไว้ด้านบน แต่ข้อผิดพลาดยังคงมีอยู่

มีใครทราบเหตุผลที่ Windows จะหยุดการรับรู้โปรแกรมและไฟล์แบทช์ใน CLI โดยไม่ระบุว่าเป็นไฟล์. exe หรือ. bat


คุณแน่ใจหรือว่าคุณอยู่ในพรอมต์คำสั่ง นี่คือพฤติกรรมเริ่มต้นของพรอมต์ Powershell ซึ่งอาจเป็นสิ่งที่คุณเป็นจริง
EBGreen

@EBGreen คุณสามารถเรียกใช้ xcopy (ตัวอย่าง) ใน Powershell โดยไม่ระบุนามสกุล
Ƭᴇcʜιᴇ007

คุณรีบูทตั้งแต่คุณเปลี่ยนเส้นทางกลับมาหรือไม่? ต้องบอกว่าโดยทั่วไปปัญหาของเส้นทางจะไม่ส่งผลกระทบต่อการใช้งานส่วนขยาย คุณใช้ Windows 7 32- บิตหรือ 64-bit? สิ่งที่ส่งคืนถ้าคุณเรียกใช้ where xcopy.exe?
Ƭᴇcʜιᴇ007

แล้วคุณล่ะ PATHEXT ตัวแปร? ควรเป็นสิ่งที่ชอบ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSCไวยากรณ์เป็นเหมือน PATH ตัวแปรที่มีตัวคั่นเครื่องหมายอัฒภาค เพิ่มผลลัพธ์จาก set path คำสั่งโปรด
JosefZ

คุณลองกู้คืนระบบแล้วหรือยัง
DavidPostill

คำตอบ:


1

สาเหตุที่เป็นไปได้สำหรับ Windows cmd ข้อผิดพลาดของเชลล์

'foo' is not recognized as an internal or external command,
operable program or batch file

ตัวแปรสภาพแวดล้อมสองตัวแปรมีความผูกพันใกล้เคียงกับการดำเนินการคำสั่งเชลล์: PATH และ PATHEXT.

  • PATH ตัวแปรสภาพแวดล้อมกำหนดเส้นทางการค้นหาของ Windows นั่นคือรายการไดเรกทอรีที่ค้นหาเมื่อเชลล์คำสั่งพยายามค้นหา ปฏิบัติการ ไฟล์.
  • PATHEXT ตัวแปรสภาพแวดล้อมกำหนดรายการของนามสกุลไฟล์ที่ Windows ตรวจสอบเมื่อทำการค้นหา ปฏิบัติการ ไฟล์.

และสามารถพิจารณานามสกุลไฟล์ใด ๆ ได้ ปฏิบัติการ : หากนามสกุลไฟล์เชื่อมโยงกับแอปพลิเคชันเชลล์จะเรียกใช้งานแอปพลิเคชันที่เหมาะสม ที่นี่ มีความเกี่ยวข้อง ย่อมาจากเช่นเดียวกับ ถูกกำหนดให้เป็นเชลล์แอ็คชันเริ่มต้น ในรีจิสทรี Windows สำหรับส่วนขยายไฟล์เฉพาะ

นี่คือการแนะนำที่ดีสำหรับทุกหัวข้อนี้: เชลล์คำสั่งของ Windows NT


ขอบคุณ ตามที่อธิบายไว้ในความคิดเห็นของฉันข้างต้น RubyInstaller โปรแกรม mangled ของฉัน PATHEXT เมื่อเลือกที่จะอัปเดตการเชื่อมโยงของไฟล์ทำให้ฉันไม่มีส่วนขยายมาตรฐานใด ๆ
KChaloux

0

ฉันพบสิ่งนี้ด้วยไฟล์แบตช์ที่ฉันใช้เพื่อคัดลอกแอป Front-End ไปยังเครื่องท้องถิ่น สภาพแวดล้อมของพวกเขาคือการผสมผสานของ Windows 7 & amp; เครื่อง 8 และ 32-64 บิต

ฉันสังเกตเห็นว่า xcopy.exe เป็นทั้งใน System32 และโฟลเดอร์ SysWOW64 และฉันสงสัยว่ามีข้อขัดแย้งบ้างไหม

ฉันคัดลอก xcopy.exe ไปยังโฟลเดอร์ที่มีไฟล์แบตช์อยู่และตอนนี้ดูเหมือนว่าจะใช้งานได้

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