PowerShell: วิธีย้ายและเปลี่ยนชื่อไฟล์
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อย้ายและเปลี่ยนชื่อไฟล์หลายไฟล์จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่งโดยใช้ PowerShell:
Get-ChildItem *.txt |
ForEach-Object{
$newName = $_.FullName -replace 'information', 'info'
Rename-Item $_ $newName
Move-Item $newName -destination "c:\users\bobbi\data2"
}
ตัวอย่างนี้จะเปลี่ยนชื่อไฟล์ .txt ทั้งหมดในไดเร็กทอรีปัจจุบันโดยแทนที่ "information" ด้วย "info" ในชื่อไฟล์ จากนั้นย้ายไปยังโฟลเดอร์ใหม่ชื่อ data2
ไฟล์ทั้งหมดที่ไม่มีนามสกุล .txt ในไดเรกทอรีปัจจุบันจะยังคงไม่เปลี่ยนแปลง
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีย้ายและเปลี่ยนชื่อไฟล์ใน PowerShell
สมมติว่าไดเรกทอรีปัจจุบันของเรามีเส้นทางต่อไปนี้:
C:\Users\bobbi\data1
เราสามารถพิมพ์ Get-ChildItem เพื่อแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันนี้:
สมมติว่าเราต้องการเปลี่ยนชื่อไฟล์ทั้งหมดที่มีนามสกุล .txt โดยแทนที่สตริง “information” ด้วย “info” ในแต่ละชื่อไฟล์ จากนั้นย้ายแต่ละไฟล์เหล่านี้ไปยังชื่อโฟลเดอร์ใหม่ ข้อมูล2.
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:
Get-ChildItem *.txt |
ForEach-Object{
$newName = $_.FullName -replace 'information', 'info'
Rename-Item $_ $newName
Move-Item $newName -destination "c:\users\bobbi\data2"
}ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
เมื่อเราใช้ Get-ChildItem cmdlet เพื่อดูเนื้อหาของโฟลเดอร์ data2 เราจะเห็นว่าแต่ละไฟล์ .txt จาก โฟลเดอร์ data1 ได้รับการเปลี่ยนชื่อโดยแทนที่สตริง "information" ด้วย "info" แทน
หากเราใช้ Get-ChildItem cmdlet อีกครั้งเพื่อดูไฟล์ในไดเรกทอรีปัจจุบันของเรา เราจะเห็นว่าไฟล์ .txt แต่ละไฟล์ที่เราเปลี่ยนชื่อไม่อยู่ในนั้นอีกต่อไป ไดเรกทอรี:
มีเพียงไฟล์ .csv เท่านั้นที่ยังคงอยู่ในไดเรกทอรีปัจจุบัน ซึ่งเราไม่ได้เปลี่ยนชื่อหรือย้าย


