ตามค่าเริ่มต้นฉันต้องการให้ PowerShell ถูกเรียกใช้แทนคำสั่งเมื่อพูดใช้งานแบตช์ไฟล์หรือเมื่อฉัน "เปิดหน้าต่างคำสั่งที่นี่" เป็นต้น
ข้อเสนอแนะใด ๆ
ตามค่าเริ่มต้นฉันต้องการให้ PowerShell ถูกเรียกใช้แทนคำสั่งเมื่อพูดใช้งานแบตช์ไฟล์หรือเมื่อฉัน "เปิดหน้าต่างคำสั่งที่นี่" เป็นต้น
ข้อเสนอแนะใด ๆ
คำตอบ:
ฉันเพิ่งทดสอบอย่างรวดเร็วและรายการรีจิสทรีต่อไปนี้จะเพิ่มรายการ "PowerShell here" ไปที่เมนูบริบทของโฟลเดอร์ทั้งหมดใน explorer:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere]
@="&PowerShell here"
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="cmd.exe /c start \"PS\" powershell.exe -NoExit -Command \"cd \\\"%1\\\"\""
เพียงนำเข้าสู่รีจิสทรี ฉันใช้cmd.exe
เพื่อ bootstrap powershell เพื่อหลีกเลี่ยงการยากรหัสเส้นทาง
เกี่ยวกับสคริปต์ cmd / ไฟล์แบทช์ ฉันคิดว่ามันไม่สมเหตุสมผลเลยที่จะเรียกใช้สคริปต์ CMD ภายใน PowerShell ตามค่าเริ่มต้น แต่อาจเป็นไปได้เช่นกันโดยการปรับเปลี่ยนHKCR\cmdfile\shell\open
รีจิสทรีคีย์
คุณจะไม่ไปไกลกับการเรียกใช้ชุดไฟล์ CMD ใน PowerShell
คุณสามารถลองเปลี่ยน%COMSPEC%
ตัวแปรให้ชี้ไปที่การpowershell.exe
ใช้setx
งานได้ แต่ฉันไม่คิดว่ามันจะใช้เวลานานกว่าคุณจะรู้ว่านี่เป็นความคิดที่แย่จริงๆและเปลี่ยนมันกลับมาอีกครั้ง
บันทึกไฟล์เป็น * .ps1 แทน * .bat และจะใช้ powershell
%COMSPEC%
เป็นเชลล์ที่ไม่รองรับ CMD แต่ฉันคิดว่าการเปลี่ยนเป็น PowerShell จะส่งผลให้.cmd
/ .bat
ไฟล์พยายามเรียกใช้ใน PowerShell ดังนั้นพวกเขาจะล้มเหลว ฉันติดตั้งซอฟต์แวร์จำนวนมากซึ่งจำเป็นต้องใช้ไฟล์แบตช์ดังนั้นการทำเช่นนั้นจะเป็นความคิดที่ไม่ดี นอกจากนี้ฉันลำเอียงเล็กน้อยเพราะฉันใช้ CMD ตลอดเวลา (ที่จริงแล้ว TCC ซึ่งเป็น superset ที่ขยาย) สำหรับการจัดการไฟล์ทุกวัน - ฉันใช้ PowerShell สำหรับเนื้อหาระบบเท่านั้นแม้ว่าฉันจะมีอะไรมากกว่าที่จะเรียนรู้เช่น มันทรงพลังมากเมื่อเปรียบเทียบ
%ComSpec%
เป็นชี้ไปที่ PowerShell ในระบบ Win7 ของฉัน .cmd
ไฟล์คู่แรกที่ฉันทดสอบทำงานได้ดี พวกเขาเกี่ยวข้องกับcmd
โครงสร้าง -specific ( for
การจัดการตัวแปรif
) ดังนั้น PS cmd.exe
เห็นได้ชัดคือฉลาดพอที่จะรู้ว่าเมื่อมันต้องการที่จะก่อให้เกิด
%ComSpec%
เป็น powershell จะแบ่งคำสั่งการควบคุมเวอร์ชัน Mercurial