Cách tạo file và thư mục dễ dàng với Powershell

Quản lý file là một phần thiết yếu trong công việc hàng ngày. Bạn sẽ phải quản lý quyền truy cập vào các thư mục được chia sẻ, sao lưu chúng thường xuyên, cũng như thực hiện những thao tác tiêu chuẩn khác trên các file và thư mục trong hệ thống Windows. Tin vui là bạn có thể sử dụng PowerShell để quản lý file dễ dàng.

Trong thực tế, công cụ này có thể làm giảm số lượng công việc thủ công liên quan đến quản lý file. Trong bài viết này, Quantrimang.com sẽ tập trung vào cách bạn có thể tạo file và thư mục trong PowerShell.

Tạo một file

Để tạo một file mới, sử dụng cmdlet New. Nói chung, cmdlet này được sử dụng để tạo bất kỳ loại đối tượng nào trong PowerShell. Tất cả những gì bạn phải làm là chỉ định loại đối tượng bạn muốn tạo trong cmdlet này.

Đây là cách bạn có thể tạo file hoặc thư mục trong PowerShell bằng lệnh New-Item.

New-Item -Path '\\Shared\TestFolder\testfile1.txt' - ItemType File

Lệnh trên sẽ tạo một file mới gọi là testfile1.txt. Ở đây, Itemtype là một file, vì vậy lệnh này sẽ tạo một file cho bạn và để trống nội dung. Nói cách khác, lệnh này sẽ tạo một file văn bản trống cho bạn.

Tạo file sau khi kiểm tra kỹ tên file

Bây giờ, nếu bạn đã có một file cùng tên, nó sẽ bị ghi đè. Vì vậy, hãy chắc chắn rằng bạn kiểm tra kỹ tên file trước khi tạo. Một tùy chọn khác là có một script sẽ tự động kiểm tra xem có file nào khác tồn tại với cùng tên không và sẽ chỉ tạo file nếu không có file nào khác được đặt tên đó.

Một ví dụ về một script như vậy được hiển thị dưới đây.

$filenames = Get-ChildItem \\Shared\TestFolder\*.txt | select -expand fullname
$filenames -match "testfile1.txt"
If ($filenames -eq 'False') {
New -Item -Path '\\Shared\TestFolder\testfile1.txt' - ItemType File
}
else {exit}

Script trên sẽ kiểm tra xem một file với tên tương tự có tồn tại trong cùng thư mục hay không và nếu có, nó sẽ thoát. Nếu không, file mới sẽ được tạo.

Ghi đè một file hiện có

Trước đó, bài viết đã chỉ cho bạn cách tránh ghi đè một file hiện có. Nhưng đôi khi, bạn phải ghi đè lên một file và có thể làm điều đó bằng cách sử dụng tham số Force.

New-Item -Path '\\Shared\TestFolder\testfile1.txt' - ItemType File -Force

Lệnh này sẽ buộc tạo một file và ghi đè lên file hiện có, vì bạn đang nói với hệ thống rằng bạn biết mình làm gì và không cần bất kỳ cảnh báo hoặc lời nhắc nào về các file ghi đè. Mặc dù điều này có vẻ là một ý tưởng tốt, nhưng luôn có khả năng xảy ra lỗi và bạn có thể mất dữ liệu có trong các file hiện có. Đây là lý do tại sao không nên lạm dụng tham số chuyển đổi này và nếu bạn phải làm như vậy, hãy thật thận trọng.

Ghi dữ liệu vào file mới

Trong hầu hết mọi trường hợp, bạn không cần một file trống vì nó rất vô nghĩa. Thay vào đó, bạn muốn có một file chứa dữ liệu và tốt nhất là có tùy chọn để thêm nội dung vào đó thường xuyên.

Tin vui là PowerShell có một lệnh tích hợp có tên Out-File để tạo file và ghi dữ liệu vào đó tại thời điểm tạo.

$content = 'Hello world! This is the first line of my file.' | out-file -filepath C:\temp\testfile1.txt

Điều này sẽ tạo một file có tên textfile1.txt trong thư mục C:\Temp và nó sẽ chứa thông điệp của bạn.

Ghi dữ liệu vào file mới
Ghi dữ liệu vào file mới

Vì vậy, có những cách khác nhau để tạo một file bao gồm những cân nhắc bạn nên ghi nhớ.

Tiếp theo, ta sẽ chuyển sang phần tạo thư mục.

Tạo một thư mục

Có 4 cách tạo thư mục trong PowerShell và sự lựa chọn tùy thuộc vào nhu cầu lập trình của bạn.

Sử dụng Windows PowerShell gốc

Có lẽ cách dễ nhất để tạo thư mục là sử dụng lệnh Windows PowerShell gốc. Bạn cũng có thể sử dụng cùng một lệnh được sử dụng trong việc tạo file để tạo thư mục và như bạn dự đoán, chỉ cần thay đổi giá trị của ItemType:

New-Item -Path '\\Shared\TestFolder' - ItemType Directory

Lệnh này trả về một đối tượng được gọi là DirectoryInfo có chế độ thư mục, thời gian ghi cuối cùng và độ dài của tên.

Bạn thậm chí có thể bỏ qua tham số Path và có thể chỉ định trực tiếp tên đường dẫn. Kết quả sẽ giống nhau.

New-Item '\\Shared\TestFolder' - ItemType Directory

Hãy đảm bảo bao gồm giá trị ItemType.

Sử dụng lớp .NET framework

Tùy chọn tiếp theo là tạo một thư mục bằng cách sử dụng namespace system.io và phương thức tĩnh CreatDirectory trong class (lớp) Directory.

Lệnh bạn có thể sử dụng là:

[system.io.directory]::CreateDirectory("\\Shared\TestFolder")

Cảnh báo: Đây là lớp .NET framework và nó không được coi là một cách tốt để sử dụng trong môi trường Windows PowerShell. Sự lựa chọn là tùy thuộc vào bạn và lệnh này sẽ giúp tạo một thư mục. Giống như tùy chọn trước đó, lệnh sẽ trả về một đối tượng DirectoryInfo với tất cả các chi tiết về thư mục vừa tạo.

Sử dụng Object

Cách thứ ba là sử dụng phương thức Object từ Scripting.FileSystemObject. Lưu ý rằng đây là cùng một phương thức được sử dụng trong VBScript, có ưu điểm là nhanh chóng và tương đối dễ sử dụng để tạo thư mục.

$newdirectory = new-object -ComObject scripting.filesystemobject
$newdirectory.CreateFolder(“\\Shared\TestFolder”)

Lệnh này sẽ trả về một đối tượng có chứa đường dẫn và thông tin khác của thư mục.

Sử dụng hàm md

Tùy chọn cuối cùng là tạo một thư mục bằng hàm md. Nhiều người thấy điều này thuận tiện vì họ đã sử dụng nó rất nhiều trong Command Prompt để tạo các thư mục khác nhau. Ngoài ra, cú pháp khá đơn giản và bạn không cần phải đề cập đến ItemType, vì chỉ riêng md là đủ để nói với hệ thống rằng bạn đang tạo thư mục rồi.

Lệnh cần sử dụng là:

md \\Shared\TestFolder

Lệnh này cũng trả về một đối tượng DirectoryInfo.

Thứ Hai, 13/04/2020 14:59
52 👨 3.434
0 Bình luận
Sắp xếp theo