วิธีรับเส้นทางแบบเต็มของไดเรกทอรีปัจจุบันใน PowerShell
รับตำแหน่ง cmdlet ใน PowerShell รับเส้นทางแบบเต็มของไดเรกทอรีปัจจุบันคล้ายกับ PowerShell pwd ซึ่งจะพิมพ์ไดเรกทอรีปัจจุบัน
ในบทช่วยสอนนี้ เราจะพูดถึงการใช้ PowerShell เพื่อรับเส้นทางแบบเต็มของไดเรกทอรีปัจจุบันและไดเรกทอรีปัจจุบันของไฟล์สคริปต์พร้อมตัวอย่าง
เราจะให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีการต่างๆ ใน PowerShell เพื่อรับเส้นทางไดเรกทอรีปัจจุบัน
เส้นทางไดเรกทอรีปัจจุบันของ PowerShell
PowerShell $pwd - พิมพ์ไดเรกทอรีปัจจุบัน
$pwdpwd (ไดเร็กทอรีงานพิมพ์) ใน 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
