Add-content trong PowerShell
by Khánh Linh
13/09/2021, 9:48 AM | 13/09/2021, 9:48 AM | 911 | 040141
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