Lệnh PowerShell để ghi vào tệp: Hướng dẫn đầy đủ

Cập nhật lần cuối: 30/07/2025
tác giả: Isaac
  • 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ác lệnh Powershell để ghi vào bên trong các 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.

ghi các tập tin PowerShell bằng lệnh cmdlet

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.

  Cách cài đặt Google Play Games trên Windows từng bước

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

powershell chuyển hướng đầu ra tệp ra

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

Thao tác với các tập tin bằng PowerShell StreamWriter

Đố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.

  Cách chỉnh sửa tệp hosts trong Windows, Linux và macOS từng bước

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ớ:

  Cách tiếp tục tải xuống bị gián đoạn trong trình duyệt web của bạn
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ẽ.