Add-content trong PowerShell

by Khánh Linh

13/09/2021, 9:48 AM   |    13/09/2021, 9:48 AM   |    780   |    0

Add-content là lệnh cmdlets giúp thêm nội dung vào mục được chỉ định, ví dụ như thêm một chuỗi vào một tệp. Có thể thêm nội dung bằng cách nhập nội dung hoặc chỉ định một đối tượng có chứa nội dung.


Các Ví dụ
Ví dụ 1: Thêm chuỗi vào tất cả các tệp trong mục chỉ định có chứa ngoại lệ
Thêm câu ‘xin chào !’ vào tất cả các tệp có đuôi txt, trừ tệp có tên là hello
 
Add-Content -Path C:\demo\*.txt -Exclude hello* -Value 'xin chào !' 


Trong ví dụ trên có 3 tham số :
-Path là đường dẫn, *.txt ở đây chỉ tất cả các file đuôi txt, bạn có thể chỉ định tên một file cụ thể.
-Exclude ở đây là ngoại lệ, hello* nghĩa là trừ các tệp có tên là hello, bạn có thể chỉ định dạng file cụ thể như : hello.doc
-Value là chỉ định chuỗi phía sau được thêm vào tệp.

Ví dụ 2: Thêm ngày giờ hiện tại vào cuối tệp tin
 
Add-Content -Path C:\demo\DateTimeFile1.txt, C:\demo\DateTimeFile2.txt -Value (Get-Date) 

 

Ví dụ trên thêm ngày giờ hiện tại vào 2 tệp tin được chỉ định.
Lưu ý: Nếu các tệp tin chỉ định trong đường dẫn không tồn tại trước thì nó sẽ được tạo mới, nếu có trước rồi thì nội dung sẽ được cập nhật

Ví dụ 3: Thêm nội dung của một tệp được chỉ định vào một tệp khác
$var = Get-Content -Path C:\demo\DateTimeFile1.txt
Add-Content -Path C:\demo\DateTimeFile2.txt -Value $var


- Lệnh Get-Content lấy nội dung của file được chỉ định lưu vào biến $var
- Lệnh Add-Conntent thêm nội dung lưu trong biến $var vào file được chỉ định trong –Path


Ví dụ 4: Thêm nội dung của một tệp được chỉ định vào một tệp khác sử dụng pipe

Với Pipe mình đã giới thiệu trong bài Bắt đầu làm quen với PowerShell, hiểu đơn giản là ta sẽ sử dụng nhiều lệnh nối tiếp nhau. Nếu không muốn sử dụng biến như ví dụ 3.
 
Get-Content -Path  C:\demo\DateTimeFile1.txt | Add-Content -Path C:\demo\DateTimeFile2.txt 


Ví dụ 5: Tạo một tệp mới và sao chép nội dung tệp hiện có vào tệp mới vừa tạo
 
Add-Content -Path C:\demo\NewFile.txt -Value (Get-Content -Path C:\demo\DateTimeFile1.txt) 


Ví dụ 6: Thêm nội dung vào tệp chỉ đọc ( read-only)
Ta có thể thêm nội dung vào tệp ngay cả khi thuộc tính Read-only của nó được đặt thành true.
 
New-Item -Path C:\demo\IsReadOnlyTextFile.txt -ItemType File
Set-ItemProperty -Path C:\demo\IsReadOnlyTextFile.txt -Name IsReadOnly -Value $True
Add-Content -Path C:\demo\IsReadOnlyTextFile.txt -Value 'Add value to read-only text file' -Force 

-New-Item là lệnh tạo một file mới, nếu muốn bạn cũng có thể sử dụng Add-Content để tạo tệp mới như sau :
 
​​​​​​​ Add-Content -Path C:\demo\IsReadOnlyTextFile.txt -Value '' 


-Set-ItemProperty ở đây thay đổi thuộc tính isReadOnly của tệp tin thành True
-Add-Content thêm nội dung vào tệp tin, lưu ý thuộc tính –Force là quan trọng để thêm nội dung vào tệp chỉ đọc.


Ví dụ 7: Sử dụng bộ lọc (Filter) với Add-Content
Thêm nội dung vào tất cả các file đuôi .txt trong đường dẫn Path :
 
Add-Content -Path C:\demo\* -Filter *.txt -Value "hôm nay là 28 tết" 


Parameters

- Confirm : Một hộp thoại hiện ra xác nhập bạn muốn chạy lệnh cmdlet không. Mặc định là False.
- Encoding : Tham số này khá quan trọng khi bạn muốn chỉ định dạng mã hoá cho chuỗi thêm vào, ví dụ khi gõ tiếng việt có dấu bạn thêm -Encoding Unicode . Tham số này chỉ hoạt động trên các ổ đĩa của máy tính.
 
Add-Content -Path C:\demo\File.txt -Value "cộng hoà xã hội chủ nghĩa việt nam" -Encoding Unicode -Confirm  


Các giá trị được chấp nhận: ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32.
    
- Exclude: Tham số loại trừ, tham số này sẽ loại trừ các tệp được chỉ định trong Path.
 

Add-Content -Path C:\demo\* -Exclude hello* -Value 'xin chào !' 


Hello* loại trừ các tệp có tên là Hello
Exclude *.txt loại trừ các tệp có đuôi .txt
Exclude *.txt, *.log : loại trừ các tệp đuôi .txt và .log