มีวิธีเปลี่ยนตำแหน่งเริ่มต้นของ PowerShell หรือไม่?
คุณตั้งค่าไดเรกทอรีการทำงานเริ่มต้นของ PowerShell ได้อย่างไร
มีวิธีเปลี่ยนตำแหน่งเริ่มต้นของ PowerShell หรือไม่?
คุณตั้งค่าไดเรกทอรีการทำงานเริ่มต้นของ PowerShell ได้อย่างไร
คำตอบ:
คุณสามารถระบุไดเร็กทอรีที่จะเปิดเมื่อเริ่ม PowerShell:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
เพียงแค่ใช้ในทางลัดของคุณ
หรือใช้โปรไฟล์เพื่อตั้งค่าไดเร็กทอรีเริ่มต้น
pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
                    สร้างโปรไฟล์ PowerShellดังต่อไปนี้
เรียกใช้ PowerShell ในฐานะผู้ดูแลระบบและดำเนินการคำสั่งต่อไปนี้:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
สิ่งนี้จะอนุญาตให้ PowerShell เรียกใช้สคริปต์ในเครื่องและสคริปต์ที่ดาวน์โหลดจากอินเทอร์เน็ตที่ได้รับการลงนาม อ่านเพิ่มเติมเกี่ยวกับคำสั่งนี้ในเอกสาร
ในDocumentsโฟลเดอร์ของคุณค้นหาโฟลเดอร์ที่มีชื่อWindowsPowerShellสำหรับ PowerShell แบบคลาสสิกหรือPowerShellสำหรับ PowerShell Core ที่ใหม่กว่า ถ้าไม่มีก็ไม่เป็นไร เพียงแค่สร้างมัน
profile.ps1ในWindowsPowerShellโฟลเดอร์ (หรือPowerShellสำหรับ PowerShell Core)เปิดprofile.ps1และเพิ่มคำสั่งต่อไปนี้เพื่อตั้งค่าไดเร็กทอรีการทำงานเริ่มต้นของคุณ:
Set-Location C:\my\default\working\directoryเปิดหน้าต่าง PowerShell ใหม่ ... การเปลี่ยนแปลงควรมีผล
powershell -File "myscript.ps1"
                    powershel -NoProfile -File "myscript.ps1"
                    ฉันได้ลองทำตามคำตอบข้างต้นในWindows Server 2016 แล้วไม่ประสบความสำเร็จ
แต่ฉันพบว่าวิธีนี้ (ควรจะเหมือนกันสำหรับ Windows 10) ได้ผลสำหรับฉัน
เสร็จแล้ว!
ในเดียวกันคุณสมบัติโต้ตอบคุณยังสามารถเปลี่ยนการตั้งค่าอื่น ๆ เช่นแบบอักษรสีขนาดและบนทางลัดAdvancedแท็บมีผ่านทางปุ่ม คุณสามารถเลือกได้ว่าจะเรียกใช้เซสชัน PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบหรือไม่
Run as administratorใน.lnkเมนูขั้นสูง ทางออกน่าจะอยู่ที่นี่stackoverflow.com/questions/31622469/…
                    Run as aministratorcheckbox ไปมา
                    วิธีที่ง่ายกว่าในการตั้งค่าไดเรกทอรีเริ่มต้นมีดังต่อไปนี้:
คลิกขวาที่ไอคอน Windows PowerShell ใน Start และคลิกขวาอีกครั้ง Windows PowerShell และเลือก Properties (ไม่ใช่Run as Administratorและไม่ใช่Windows PowerShell ISE )
การใส่Set-Locationลงในโปรไฟล์ของคุณจะเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันโดยไม่มีเงื่อนไขซึ่งอาจมีผลที่ไม่พึงประสงค์เกี่ยวกับไดเร็กทอรีการทำงานสำหรับสคริปต์ที่คุณดำเนินการผ่าน "run with PowerShell"
อีกทางเลือกหนึ่งคือการเปลี่ยนไดเร็กทอรีการทำงานสำหรับ.lnkไฟล์เป็น PowerShell ที่มักพบใน%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell. คลิกขวาที่ลิงค์และเปลี่ยนไดเร็กทอรีการทำงานจาก%HOMEDRIVE%%HOMEPATH%เป็นไดเร็กทอรีที่คุณต้องการ
Run as administratorใน.lnkเมนูขั้นสูง ทางออกน่าจะอยู่ที่นี่stackoverflow.com/questions/31622469/…
                    -NoProfileตัวเลือกเช่น  powershell -NoProfile -File "myscript.ps1"
                    พิมพ์สิ่งนี้ใน PowerShell:
New-Item -path $profile -type file –force
สร้างไฟล์. ps1 ในโฟลเดอร์ PowerShell เปิดและแก้ไขเป็น:
Set-location C:\files
เสร็จแล้ว
อ้างอิงจากลิงค์นี้ มันทำงานได้ดี
แทนที่จะเปลี่ยนไดเร็กทอรีการทำงานโดยไม่มีเงื่อนไขตามที่กล่าวไว้ในคำตอบก่อนหน้านี้คุณสามารถเขียนฟังก์ชันง่ายๆในโปรไฟล์ PowerShell เพื่อใช้Set-Locationเปลี่ยนไดเร็กทอรีการทำงานได้อย่างรวดเร็วเมื่อจำเป็น
ตรวจสอบคำตอบของ Jeremy Danyowเพื่อสร้าง / แก้ไขโปรไฟล์ PowerShell
เพิ่มฟังก์ชันลงในโปรไฟล์ PowerShell ของคุณ:
function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}
เพียงแค่เปลี่ยนชื่อฟังก์ชันและไดเร็กทอรีที่ชี้ไป การใช้เครื่องหมายคำพูดบนเส้นทางเป็นสิ่งจำเป็นหากมีช่องว่าง ฉันพยายามคงคำนำหน้าไว้goto_เพราะมันช่วยในการจำชื่อฟังก์ชัน
คุณสามารถเริ่มพิมพ์goto_จากนั้นกด TAB เพื่อหมุนเวียนฟังก์ชันที่เพิ่มทั้งหมด (อย่าลืมเริ่มหน้าต่าง PowerShell ใหม่หลังจากเพิ่ม / แก้ไขฟังก์ชัน)
ใช้เพียงบรรทัดคำสั่งหากมีไฟล์อยู่แล้วไฟล์จะต่อท้าย:
$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1
    ด้วยเหตุนี้ดูเหมือนว่าจะมีความสับสนใน "ไดเรกทอรีการทำงาน" และ "ตำแหน่ง" ของ PowerShell สิ่งที่คนส่วนใหญ่ที่นี่กำลังทำและบอกว่าจะทำคือเปลี่ยน "ตำแหน่ง" ของ PowerShell "ไดเรกทอรีการทำงาน" แตกต่างกันจริง นี่คือบทความที่อธิบาย
สำหรับผู้ที่ไม่ต้องการที่จะอ่านบทความ: เปิด PowerShell Set-Location "C:\some\directory"และการใช้สิ่งที่คนอื่นได้กล่าวว่าจะทำอย่างไร โปรดสังเกตว่า "ไดเรกทอรีการทำงาน" ของคุณยังคงเป็นที่ที่ PowerShell ของคุณเปิดอยู่ อย่างใดอย่างหนึ่ง"~"หรือ"%SYSTEMROOT%\system32"ขึ้นอยู่กับว่าคุณทำงานในฐานะผู้ดูแลระบบหรือไม่ ในการตรวจสอบไดเร็กทอรีการทำงานให้ใช้[Environment]::CurrentDirectory.
หมายเหตุ:ในบทความผู้เขียนบอกว่าให้ตรวจสอบ "ไดเรกทอรีการทำงาน" โดยใช้คำสั่งนี้:
\[Environment\]::CurrentDirectory
ผมไม่แน่ใจว่าถ้างานนี้กับรุ่นเก่า PowerShell แต่มี PowerShell 5 (และต่อมา) [Environment]::CurrentDirectoryคุณต้องใช้
เขียน - เอาต์พุต "Set-Location C: \" >> $ profile
กำหนดให้เป็นบรรทัดแรกใน Profile.ps1 และ PowerShell Core (pwsh) จะเปิดขึ้นในไดเร็กทอรีที่คุณกำลังทำงานอยู่:
set-location (รับตำแหน่ง) .path
โซลูชันนี้ตั้งค่าโฟลเดอร์การทำงานปัจจุบันไปยังตำแหน่งที่สคริปต์ตั้งอยู่ อย่าลืมวางไว้ที่จุดเริ่มต้นของสคริปต์ของคุณหรืออย่างน้อยก่อนที่คุณจะพยายามใช้คำสั่งโดยอาศัยเส้นทางตำแหน่ง
Set-Location (Split-Path $MyInvocation.MyCommand.Path)