ค้นหาเว็บไซต์

วิธีรับเส้นทางแบบเต็มของไดเรกทอรีปัจจุบันใน PowerShell


รับตำแหน่ง cmdlet ใน PowerShell รับเส้นทางแบบเต็มของไดเรกทอรีปัจจุบันคล้ายกับ PowerShell pwd ซึ่งจะพิมพ์ไดเรกทอรีปัจจุบัน

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

เราจะให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีการต่างๆ ใน PowerShell เพื่อรับเส้นทางไดเรกทอรีปัจจุบัน

เส้นทางไดเรกทอรีปัจจุบันของ PowerShell

PowerShell $pwd - พิมพ์ไดเรกทอรีปัจจุบัน

$pwd

pwd (ไดเร็กทอรีงานพิมพ์) ใน PowerShell รับเส้นทางปัจจุบันของไดเร็กทอรีการทำงานปัจจุบันไปยังเอาต์พุตมาตรฐาน

PowerShell pwd เป็นนามแฝงของ Get-Location cmdlet ใน PowerShell ตัวแปรอัตโนมัติ $pwd เป็นประเภทของ System.Management.Automation.PathInfo มีสิทธิ์เข้าถึงสมาชิก PathInfo

PowerShell รับไดเรกทอรีปัจจุบันโดยใช้ Get-Location

C:\Program Files>Get-Location

Get-Location cmdlet ใน PowerShell รับไดเร็กทอรีปัจจุบัน, ไฟล์โปรแกรมของไดรฟ์ C ของระบบปฏิบัติการ windows จะพิมพ์ชื่อพาธแบบเต็มของไดเร็กทอรีการทำงานปัจจุบัน

มาตั้งค่าเส้นทางไดเร็กทอรีที่แตกต่างกัน Set-Location cmdlet ใน PowerShell เพื่อตั้งค่า ไดเร็กทอรีการทำงาน ดังต่อไปนี้

Set-Location C:\Users\ShellAdmin

ตอนนี้รัน Get-Location cmdlet และดูผลลัพธ์

Get-Location

ตอนนี้ส่งคืนไดเร็กทอรีการดำเนินการปัจจุบันเป็น C:\Users\ShellAdmin

ตัวแปรไดเรกทอรีปัจจุบันของ PowerShell

ใน PowerShell รับไดเร็กทอรีปัจจุบันไปยังตัวแปรโดยใช้คำสั่งด้านล่าง

$curDir = Get-Location
Write-Host "Current Working Directory: $curDir"

Get-Location คำสั่ง PowerShell กำหนดไดเรกทอรีปัจจุบันให้กับตัวแปร $curDir cmdlet write-Host จะพิมพ์เส้นทางโฟลเดอร์ปัจจุบันบน PowerShell Terminal

รับเส้นทางไดเรกทอรีหลักใน PowerShell

ลองพิจารณาว่าคุณมีโครงสร้างไดเร็กทอรีเป็น C:\Backup\01-Sept\

หากคุณต้องการรับไดเร็กทอรีการทำงานหลัก คุณสามารถรับไดเร็กทอรีโดยใช้คำสั่งด้านล่าง

$curDir = Get-Location
Split-Path -Path $curDir -Parent

ในสคริปต์ PowerShell ข้างต้น รับเส้นทางแบบเต็มของไดเร็กทอรีปัจจุบัน C:\Backup\01-Sept\ และกำหนดให้กับตัวแปร $curDir

คำสั่งที่สองส่งคืนเส้นทางไดเรกทอรีหลักเป็น C:\Backup โดยใช้ Split-Path cmdlet

เคล็ดลับเด็ด: เรียนรู้วิธีรับสิทธิ์ในโฟลเดอร์และโฟลเดอร์ย่อยใน PowerShell!

รับเส้นทางสัมพัทธ์จากไดเรกทอรีปัจจุบันของ PowerShell

เราจะดำเนินการต่อด้วยตัวอย่างข้างต้นโดยที่เรามีโครงสร้างไดเร็กทอรีปัจจุบันของ PowerShell เป็น C:\Backup\01-Sept\sqlbackup.ps1

เพื่อรับเส้นทางสัมพัทธ์ของไฟล์สคริปต์

$relativePath = Get-Item Backup\01-Sept\sqlbackup.ps1 | Resolve-Path -Relative

คำสั่งข้างต้นรับเส้นทางสัมพัทธ์จากไดเร็กทอรีปัจจุบันของ PowerShell เป็น .\01-Sept\sqlbackup.ps1

เคล็ดลับเด็ด: เรียนรู้วิธีรับเส้นทางแบบเต็มของไดเรกทอรีปัจจุบันใน PowerShell!

PowerShell รับไดเรกทอรีปัจจุบันโดยใช้ System.Environment

การใช้คุณสมบัติ [System.Environment]::CurrentDirectory เพื่อรับไดเรกทอรีปัจจุบันของ PowerShell

PS D:\PowerShell> [System.Environment]::CurrentDirectory                                                                C:\Users\ShellAdmin
PS D:\PowerShell>                                                                                                                            

ในสคริปต์ PowerShell ข้างต้น คุณสมบัติ System.Environment CurrentDirectory เพื่อรับไดเร็กทอรีการทำงานปัจจุบัน หมายเหตุในที่นี้จะส่งคืนพาธไดเร็กทอรีปัจจุบัน แม้ตำแหน่งการทำงานจะตั้งค่าเป็น D:\PowerShell

PowerShell รับไดเรกทอรีปัจจุบันของไฟล์สคริปต์

หากต้องการรับไดเร็กทอรีปัจจุบันของไฟล์สคริปต์หรือสคริปต์ที่รันอยู่ ให้ใช้ตัวแปรอัตโนมัติ $PSScriptRoot ตัวแปร PSScriptRoot มีสคริปต์แบบเต็มไปยังเส้นทางที่เรียกใช้คำสั่งปัจจุบัน

มาทำความเข้าใจรับไดเร็กทอรีปัจจุบันของไฟล์สคริปต์ (ps1) โดยใช้ตัวอย่างด้านล่าง

ตัวอย่าง ตำแหน่งสคริปต์: D:\PowerShell\ConvertString-toDate.ps1

ไฟล์สคริปต์มีตัวแปรอัตโนมัติ $PSScriptRoot และเรียกใช้ในขณะที่ทำงาน

# Convert datetime to yyyy-mmm-dd datetime format
'{0:yyyy-MMM-dd}' -f $convertDate

# Get Current Directory path of running script
Write-Host $PSScriptRoot

เมื่อเรารันไฟล์สคริปต์ด้านบน ตัวแปร $PSScriptRoot จะได้รับพาธไดเร็กทอรีปัจจุบันของสคริปต์ที่กำลังรันอยู่และพิมพ์ออกมา

ผลลัพธ์ของสคริปต์ข้างต้น

ในภาพด้านบน เมื่อเราเรียกใช้ไฟล์สคริปต์ ConvertString-toDate.ps1 ไฟล์จะพิมพ์สตริงจนถึงปัจจุบันและรับเส้นทางไดเรกทอรีสคริปต์ใน PowerShell

บทสรุป

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

PowerShell รับตำแหน่ง cmdlet รับข้อมูลสถานที่ทำงานปัจจุบัน การใช้ pwd และ Get-Location cmdlet ใน PowerShell จะทำให้คุณสามารถรับเส้นทางโฟลเดอร์ปัจจุบัน รับเส้นทางไดเรกทอรีสคริปต์ และพิมพ์ไดเรกทอรีปัจจุบันได้

Set-Location cmdlet ใช้ในบทความเพื่อตั้งค่าไดเร็กทอรีการทำงาน

คุณสามารถค้นหาหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และพื้นฐานของ PowerShell ได้ในหน้าแรกของ ShellGeek

บทความที่เกี่ยวข้อง