- PowerShell cho phép bạn dễ dàng tạo, sửa đổi và quản lý các tệp văn bản và nhị phân bằng các lệnh ghép ngắn cụ thể.
- Đồng chí chẳng hạn như Set-Content, Add-Content và Out-File cung cấp nhiều cách khác nhau để ghi hoặc thêm thông tin vào tệp, phù hợp với nhu cầu của từng người dùng.
- Việc tích hợp PowerShell với các đối tượng .NET và khả năng làm việc với các quyền chi tiết giúp mở rộng đáng kể tính linh hoạt của quản lý tệp.

Có khả năng viết, sửa đổi và thao tác các tệp từ PowerShell Đây là một kỹ năng cơ bản cho cả quản trị viên hệ thống và bất kỳ người dùng nào mong muốn tự động hóa các quy trình trong Cửa sổ. Bảng điều khiển PowerShell không chỉ là một giải pháp thay thế cho bảng điều khiển cổ điển nhắc lệnh; là một môi trường kịch bản hoàn chỉnh mở ra cánh cửa cho việc quản lý tập tin tiên tiến và hiệu quả, phù hợp với cả những tác vụ đơn giản và phức tạp hơn.
Tìm hiểu các lệnh và kỹ thuật chính để làm việc với các tệp từ PowerShell sẽ cho phép bạn vượt xa các chức năng cơ bản được cung cấp bởi giao diện đồ họa. Dưới đây, bạn sẽ tìm thấy hướng dẫn chi tiết và cập nhật về các lệnh cmdlet và phương pháp linh hoạt nhất để ghi vào tệp văn bản và tệp nhị phân, cũng như các ví dụ thực tế và buenos Tricks để tối ưu hóa cuộc sống hàng ngày của bạn với PowerShell.
Tùy chọn ghi vào tệp bằng PowerShell
PowerShell có một số lệnh ghép ngắn và phương pháp cho tạo tệp, chỉnh sửa nội dung và thao tác chúng theo nhu cầu của bạn. Những công cụ được sử dụng nhiều nhất và hữu ích nhất cho các nhiệm vụ này là:
- Nội dung thiết lập: Ghi hoặc thay thế nội dung của một tập tin.
- Nội dung bổ sung: Thêm nội dung bổ sung vào cuối tệp mà không xóa nội dung hiện có trong tệp.
- Ngoài tệp: Chuyển hướng đầu ra của bất kỳ lệnh nào vào một tệp.
- SuốiWriter và các phương pháp .NET khác – dành cho những tình huống cần kiểm soát nhiều hơn.
Mỗi lệnh cmdlet này đều có các tham số và sắc thái thú vị cho các tình huống khác nhau, chúng ta sẽ khám phá chi tiết trong suốt bài viết này.

Set-Content: Ghi hoặc Ghi đè lên Tệp
Cmdlet Nội dung thiết lập Có lẽ là trực tiếp nhất khi mục tiêu là tạo một tập tin hoặc ghi đè lên nội dung hiện tại của nó. Cách sử dụng cơ bản của nó khá trực quan:
Set-Content -Path "C:\ruta\archivo.txt" -Value "Texto que quiero introducir"
Nếu tệp đã tồn tại, lệnh này sẽ thay thế hoàn toàn tệp đó bằng văn bản mới. Nếu tệp không tồn tại, lệnh sẽ tự động tạo tệp đó tại vị trí đã chỉ định.
Bạn cũng có thể dễ dàng làm việc với nhiều dòng. Ví dụ, để lưu một mảng có nhiều chuỗi vào một tệp mới, chỉ cần:
$contenido = @("Primera línea", "Segunda línea", "Tercera línea")
Set-Content -Path "C:\ruta\archivo.txt" -Value $contenido
Mỗi phần tử của mảng được viết trên một dòng riêng biệt., do đó tạo điều kiện thuận lợi cho việc tạo các tệp có cấu trúc.
Add-Content: Thêm thông tin vào cuối tệp
Khi bạn cần thêm dữ liệu vào một tệp hiện có mà không xóa tệp cũ, lệnh ghép ngắn Nội dung bổ sung là lựa chọn hoàn hảo. Cú pháp của nó rất giống với Set-Content:
Add-Content -Path "C:\ruta\archivo.txt" -Value "Nueva línea al final"
Lệnh này sẽ chèn văn bản vào cuối tệp, giữ nguyên toàn bộ nội dung gốc. Lệnh này đặc biệt hữu ích khi xử lý nhật ký. các bản ghi hoặc thu thập thông tin dần dần.
Nếu bạn muốn thêm nhiều dòng, bạn có thể thực hiện bằng cách truyền một mảng, như đã trình bày trước đó.
Out-File: Chuyển hướng đầu ra lệnh

Cmdlet Out-File nổi bật khi chúng ta muốn trực tiếp lưu đầu ra của bất kỳ lệnh nào hoặc kịch bản trong một tập tin. Nó rất hữu ích, ví dụ, nếu bạn muốn lưu danh sách, báo cáo hoặc kết quả của một quy trình phức tạp:
Get-Process | Out-File -FilePath "C:\ruta\procesos.txt"
Trong trường hợp này, Những gì thường thấy trên màn hình được lưu trữ trong tập tin, tôn trọng định dạng và các dòng khi chúng xuất hiện trong bảng điều khiển.
Theo mặc định, Out-File sẽ ghi đè lên tệp đích., nhưng bạn có thể sử dụng tham số -Thêm vào Để thêm thông tin mà không xóa thông tin trước đó:
Get-Date | Out-File -FilePath "C:\ruta\log.txt" -Append
Ngoài ra, bạn có thể chỉ định mã hóa tệp bằng tham số -Mã hóa hoặc buộc phải tạo ra -force.
So sánh giữa Set-Content, Add-Content và Out-File
Người ta thường nhầm lẫn ba lệnh cmdlet này, nhưng mỗi lệnh được thiết kế cho những tình huống cụ thể:
- Nội dung thiết lập: hữu ích để xác định hoặc thay thế hoàn toàn nội dung của một tập tin.
- Nội dung bổ sung: hoàn hảo khi bạn chỉ muốn thêm văn bản mà không thay đổi nội dung đã có.
- Ngoài tệp: Lý tưởng để chuyển hướng kết quả từ các tập lệnh hoặc lệnh phức tạp.
Một mẹo quan trọng là kết hợp Dây ngoài với các lệnh cmdlet này nếu bạn cần chuyển đổi đầu ra đối tượng thành văn bản trước khi viết, đặc biệt là với Set-Content:
Get-Process | Out-String | Set-Content -Path "C:\ruta\procesos.txt"
Ví dụ thực tế về việc ghi và chuyển hướng trong tệp
Hãy cùng xem một số ví dụ phổ biến và tình huống thực tế mà bạn có thể giải quyết nhanh chóng:
- Tạo một tệp văn bản mới:
New-Item -Path "C:\ejemplo\nuevo.txt" -ItemType File - Làm trống nội dung của một tập tin nhưng vẫn giữ nguyên:
Clear-Content -Path "C:\ejemplo\log.txt" - Thêm văn bản kiểm tra:
"Este es un ejemplo" | Add-Content -Path "C:\ejemplo\nuevo.txt" - Thay thế một từ trong toàn bộ tệp:
(Get-Content .\archivo.txt).replace('buscar', 'reemplazo') | Set-Content .\archivo.txt
Hãy nhớ sử dụng ký tự đại diện (*) để làm việc với nhiều tệp cùng một lúc., ví dụ:
Get-Content C:\ejemplo\*.txt | Out-File -FilePath C:\ejemplo\resumen.txt
Xử lý nâng cao: Ghi tệp bằng StreamWriter và .NET

Đối với các tác vụ đòi hỏi nhiều khả năng kiểm soát hơn, chẳng hạn như ghi dữ liệu nhị phân, xử lý các mã hóa không phổ biến hoặc xử lý khối lượng lớn, bạn có thể sử dụng lớp System.IO.StreamWriter từ .NET:
$sw = [System.IO.StreamWriter]::new('C:\ruta\archivo.txt')
$sw.WriteLine('Texto específico o datos binarios')
$sw.Close()
Phương pháp này cung cấp cho bạn tính linh hoạt bổ sung, đặc biệt hữu ích trong các tập lệnh nâng cao hoặc khi bạn cần tùy chỉnh luồng đầu ra.
Làm việc với Quyền và Tệp được Bảo vệ
Đôi khi có thể cần thiết tạo các tập tin có quyền cụ thể hoặc sửa đổi ACL của tệp. PowerShell và .NET giúp việc này dễ dàng hơn bằng cách kết hợp các lệnh ghép ngắn và đối tượng. Ví dụ: để gán toàn quyền cho người dùng miền:
$archivo = New-Item -Path "C:\ruta\archivo.txt" -ItemType "File"
$acl = Get-Acl $archivo.FullName
$permiso = "dominio\usuario","FullControl","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permiso
$acl.SetAccessRule($accessRule)
Set-Acl $archivo.FullName $acl
Bằng cách này, bạn có thể đảm bảo rằng tệp của mình không chỉ được tạo và ghi chính xác mà còn được bảo vệ và có các quyền phù hợp.
Quản lý bổ sung: Đọc, Sửa đổi và Xóa tệp
Quản lý tệp trong PowerShell không chỉ giới hạn ở việc nhập liệu. Bạn có thể:
- Đọc nội dung bằng Get-Content:
Get-Content -Path "C:\ruta\archivo.txt" - Xóa tệp bằng Remove-Item:
Remove-Item -Path "C:\ruta\archivo.txt" - Sao chép hoặc di chuyển tệp bằng Copy-Item và Move-Item vì bạn cần sắp xếp lại các thư mục.
- Lọc kết quả bằng ký tự đại diện, bộ chọn và tham số để chỉ làm việc trên các tập tin mong muốn.
Tự động hóa và xử lý khối lượng dữ liệu lớn
Một trong những lợi thế lớn nhất của PowerShell là tạo điều kiện tự động hóa các quy trình bằng các tập lệnh. Bạn có cần phải hợp nhất nội dung của nhiều tệp thành một tệp mới không? Công dụng:
Get-Content C:\carpeta\*.txt -Exclude resumen.txt | Set-Content C:\carpeta\resumen.txt
Hoặc để thêm kết quả tìm kiếm cụ thể vào nhiều tệp:
Select-String "palabra clave" C:\carpeta\*.txt | Out-File -FilePath C:\carpeta\resultados.txt
Và nếu bạn gặp bất kỳ sự cố nào với vòng lặp vô hạn hoặc các tiến trình không bao giờ kết thúc, hãy nhớ rằng bạn có thể ngắt quá trình thực thi bằng cách nhấn Control + C trên bảng điều khiển.
Các công cụ và phím tắt hữu ích khác trong PowerShell
Khi bạn đã quen với môi trường xung quanh, bạn sẽ khám phá ra những lối tắt hữu ích, chẳng hạn như:
- Tự động hoàn thành bằng phím Tab cho đường dẫn tệp hoặc lệnh.
- Nhớ lại các lệnh đã sử dụng trước đó bằng mũi tên lên/xuống.
- Làm việc nhanh chóng với nhiều thư mục sử dụng Push-Location (pushd) và Pop-Location (popd).
- Đầu ra đường ống giữa các lệnh ghép ngắn khác nhau sử dụng biểu tượng | (ống), ví dụ:
Get-Content archivo.txt | Measure-Object -Word -Line -Character
Tóm tắt các lệnh ghép ngắn và lệnh tương đương
PowerShell tập trung vào tính nhất quán trong quy ước đặt tên "Động từ-Danh từ" trên các lệnh cmdlet, giúp bạn dễ học hơn. Dưới đây là các lệnh chính bạn nên nhớ:
| Lệnh ghép ngắn | tên giả | Cách dùng thông thường |
|---|---|---|
Set-Content |
sc |
Viết/thay thế nội dung |
Add-Content |
ac |
Thêm nội dung vào cuối |
Out-File |
- | Chuyển hướng đầu ra lệnh |
Get-Content |
gc |
Đọc nội dung |
Remove-Item |
rm |
Xóa tập tin/thư mục |
New-Item |
ni |
Tạo tập tin và thư mục |
Clear-Content |
- | Các tập tin trống |
Nhiều lệnh ghép ngắn này có bí danh ngắn hơn hoặc thậm chí là tương đương với Bash, giúp việc chuyển đổi dễ dàng hơn nếu bạn đã có kinh nghiệm với các hệ thống khác.
Viết nâng cao: Xuất dữ liệu và tệp có cấu trúc
Không phải mọi thứ đều là văn bản thuần túy. Nếu bạn cần xuất dữ liệu có cấu trúc, chẳng hạn như bảng hoặc đối tượngPowerShell cung cấp cho bạn các lệnh ghép ngắn như Xuất-Csv:
$datos = @( @{Nombre='Juan';Edad=30}, @{Nombre='Ana';Edad=25} )
$datos | Export-Csv -Path "C:\datos.csv" -NoTypeInformation
Bằng cách này, bạn có thể tạo các tệp CSV tương thích với Excel và các công cụ khác, mở rộng đáng kể các ứng dụng thực tế của PowerShell trong quản trị hệ thống và phân tích dữ liệu.
Làm chủ Lệnh PowerShell để ghi vào bên trong tệp Nó cho phép bạn mở rộng khả năng quản lý và tự động hóa các tác vụ trên hệ thống Windows. Từ các tệp văn bản đơn giản đến các báo cáo hoặc nhật ký phức tạp, mọi thứ đều nằm trong tầm tay của bảng điều khiển và một vài lệnh cmdletDần dần, làm việc với PowerShell sẽ trở thành một phần tự nhiên trong thói quen của bạn, giúp bạn tiết kiệm thời gian và thực hiện các tác vụ một cách chính xác và mạnh mẽ.
Người viết đam mê về thế giới byte và công nghệ nói chung. Tôi thích chia sẻ kiến thức của mình thông qua viết lách và đó là những gì tôi sẽ làm trong blog này, cho bạn thấy tất cả những điều thú vị nhất về tiện ích, phần mềm, phần cứng, xu hướng công nghệ, v.v. Mục tiêu của tôi là giúp bạn điều hướng thế giới kỹ thuật số một cách đơn giản và thú vị.