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

วิธีรับวันที่แก้ไขไฟล์ใน PowerShell - คำถามที่พบบ่อยของ PowerShell


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

หากต้องการรับวันที่แก้ไขไฟล์ใน PowerShell คุณสามารถใช้ Get-Item cmdlet ตามด้วยคุณสมบัติ LastWriteTime ตัวอย่างเช่น $file=รับรายการ 'C:\MyFolder\file.txt'; $file.LastWriteTime จะส่งคืนวันที่และเวลาที่แก้ไขล่าสุดสำหรับไฟล์ที่ระบุ สำหรับไฟล์หลายไฟล์ ให้ใช้ Get-ChildItem และวนซ้ำผลลัพธ์เพื่อเข้าถึงคุณสมบัติ LastWriteTime

รับวันที่แก้ไขไฟล์ใน PowerShell โดยใช้ Get-Item Cmdlet

Get-Item cmdlet ใน PowerShell เป็นหนึ่งในวิธีที่ง่ายที่สุดในการดึงข้อมูลวันที่แก้ไขล่าสุดของไฟล์เดียว โดยให้ข้อมูลเกี่ยวกับออบเจ็กต์ไฟล์ รวมถึงคุณสมบัติของออบเจ็กต์ เช่น LastWriteTime ซึ่งระบุเวลาล่าสุดที่มีการเขียนไฟล์

นี่คือสคริปต์ PowerShell ที่สมบูรณ์

$file = Get-Item "C:\MyFolder\MyFile.txt"
$lastModified = $file.LastWriteTime
$lastModified

สคริปต์นี้จะกำหนดคุณสมบัติของไฟล์ให้กับตัวแปร $file จากนั้นแยกคุณสมบัติ LastWriteTime โดยจัดเก็บไว้ในตัวแปร $lastModified

คุณสามารถดูภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์โดยใช้โค้ด VS

รับวันที่แก้ไขไฟล์ทั้งหมดใน PowerShell โดยใช้ Get-ChildItem Cmdlet

หากต้องการดึงข้อมูลวันที่แก้ไขล่าสุดของหลายไฟล์ภายในไดเร็กทอรี Get-ChildItem cmdlet ใน PowerShell cmdlet นี้สามารถใช้เพื่อแสดงรายการในตำแหน่งที่ระบุตั้งแต่หนึ่งตำแหน่งขึ้นไป หากคุณต้องการดูวันที่แก้ไขล่าสุดสำหรับไฟล์ทั้งหมดในไดเร็กทอรี คุณสามารถใช้สคริปต์ PowerShell ต่อไปนี้:

$files = Get-ChildItem "C:\MyFolder"
foreach ($file in $files) {
    $lastModified = $file.LastWriteTime
    Write-Host "$($file.Name) was last modified on $lastModified"
}

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

ตรวจสอบภาพหน้าจอด้านล่าง:

จัดรูปแบบเอาต์พุตวันที่

บางครั้ง คุณอาจต้องการจัดรูปแบบเอาต์พุตวันที่เป็นรูปแบบเฉพาะ PowerShell ทำให้สิ่งนี้เป็นเรื่องง่ายด้วยเมธอด ToString() ซึ่งสามารถนำไปใช้กับออบเจ็กต์วันที่ได้

$file = Get-Item "C:\MyFolder\file.txt"
$lastModified = $file.LastWriteTime.ToString("MM/dd/yyyy HH:mm:ss")

ตัวอย่างนี้จะจัดรูปแบบวันที่แก้ไขล่าสุดให้แสดงในรูปแบบเดือน/วัน/ปี ตามด้วยชั่วโมง:นาที:วินาที

กรองไฟล์ตามวันที่แก้ไขใน PowerShell

หากคุณกำลังมองหาไฟล์ที่แก้ไขภายในช่วงวันที่ที่กำหนด คุณสามารถรวม Get-ChildItem เข้ากับ Where-Object cmdlet เพื่อกรองผลลัพธ์

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

$dateCutoff = (Get-Date).AddDays(-30) # Files modified in the last 30 days
$files = Get-ChildItem "C:\path\to\directory" | Where-Object { $_.LastWriteTime -gt $dateCutoff }

รับโฟลเดอร์วันที่แก้ไขล่าสุดใน PowerShell

หากคุณต้องการรวมไดเร็กทอรีในการค้นหาของคุณและดึงข้อมูลวันที่แก้ไขล่าสุด คุณสามารถแก้ไข Get-ChildItem cmdlet เพื่อรวมพารามิเตอร์ -Directory ได้

นี่คือสคริปต์ PowerShell

$directories = Get-ChildItem "C:\MyFolder" -Directory
foreach ($dir in $directories) {
    $lastModified = $dir.LastWriteTime
    Write-Host "$($dir.Name) was last modified on $lastModified"
}

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

บทสรุป

PowerShell มีหลายวิธีในการเรียกข้อมูลวันที่แก้ไขไฟล์ ในบทช่วยสอนนี้ ฉันได้อธิบายวิธีรับวันที่แก้ไขไฟล์ใน PowerShell วิธีที่ง่ายที่สุดคือการใช้ Get-Item Cmdlet ใน PowerShell

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