เทียบเท่าคำสั่ง "source" ของ bash ใน Powershell หรือไม่


15

ในการรันสคริปต์ทุบตีทีละบรรทัด (เพื่อรักษาตัวแปรสภาพแวดล้อมเป็นต้น) จะทำสิ่งต่อไปนี้:

$ . myscript.sh

หรือ:

$ source myscript.sh

ฉันมีสคริปต์ PowerShell ที่ - หมู่สิ่งอื่น ๆ - ตั้งค่าของพร้อมผ่านฟังก์ชั่นpromptที่เรียกว่า เพียงแค่เรียกใช้สคริปต์นี้ (". \ myscript.ps1") จะไม่เปลี่ยนพรอมต์ อย่างไรก็ตามการเรียกใช้ฟังก์ชั่นทีละบรรทัดตามคำสั่งไม่

ดังนั้นสิ่งที่ฉันต้องการอย่างมีประสิทธิภาพคือsourceคำสั่งสำหรับ PowerShell เป็นไปได้ไหม?

แก้ไข : ควรย้ายโพสต์นี้ไปยัง Stackoverflow หรือไม่

การชี้แจง 1 : เนื่องจากฉันเรียกใช้ฟังก์ชั่นนี้เฉพาะบนพื้นฐานความต้องการ (เช่นไม่ใช่สำหรับทุก PowerShell เซสชันและ / หรือเสมอ) ฉันไม่ต้องการที่จะเก็บไว้ในโปรไฟล์เริ่มต้น PowerShell ของฉัน


หมายเหตุ: คำสั่ง Bash สองคำของคุณแตกต่างกัน คุณอาจไม่ได้หมายถึงการมีจุดในจุดที่สองหรือคุณต้องการให้ทั้งคู่มี "./" (ไดเรกทอรีปัจจุบัน) ที่จุดเริ่มต้นของชื่อสคริปต์
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

คงได้ (โดยการเอาจุด)
Sridhar Ratnakumar

คำตอบ:


29

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

PS C:\>. .\myscript.ps1

นี่คือคำตอบที่ถูก :) จัดหาจุดใน PowerShell ทำงานเหมือนสวยมากเพียงในทุบตี
Jaykul

ฉันไม่รู้ว่าคุณทำได้ ดี
DaveParillo

โว้ว! ทำไมฉันถึงไม่ลองมาก่อน :)
Sridhar Ratnakumar

1
มีสิ่งนี้สามารถทำได้ด้วยสคริปต์ cmd ที่มีอยู่? มีผลการดำเนินการสคริปต์ cmd ในสภาพแวดล้อม powershell ที่มีการแก้ไข?
พีบอดี

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