มีวิธีเปลี่ยนตำแหน่งเริ่มต้นของ 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 aministrator
checkbox ไปมา
วิธีที่ง่ายกว่าในการตั้งค่าไดเรกทอรีเริ่มต้นมีดังต่อไปนี้:
คลิกขวาที่ไอคอน 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)