Trang chủ » làm thế nào để » Thay thế văn bản trong tệp văn bản thuần từ dòng lệnh

    Thay thế văn bản trong tệp văn bản thuần từ dòng lệnh

    Một chức năng rất hữu ích bị thiếu trong thư viện Windows của các công cụ dòng lệnh là khả năng thay thế văn bản trong các tệp văn bản thuần túy. Một chức năng như thế này có thể được sử dụng cho nhiều tác vụ thực tế mà nhiều quản trị viên hệ thống thực hiện, chẳng hạn như:

    • Cập nhật tệp cấu hình / INI để thay thế đường dẫn UNC.
    • Cập nhật hàng loạt thông tin người dùng được lưu trữ trong các tệp INI trên máy chủ Terminal / Citrix.
    • Sử dụng kết hợp với các tập lệnh để triển khai dữ liệu 'templated' và sau đó áp dụng các giá trị cho các tệp được sao chép.

    Giải pháp của chúng tôi là VBScript có giao diện với chức năng Visual Basic Thay thế. Bằng cách đặt tập lệnh này vào một vị trí trong biến Windows PATH của bạn, giờ đây bạn có sẵn chức năng này theo ý của bạn.

    Công dụng

    Khi ở trên hệ thống của bạn, bạn có thể gọi tập lệnh bằng cách sử dụng lệnh Thay thế. Một vài ví dụ sẽ minh họa những cách bạn có thể sử dụng:

    Thay thế từ "null null" bằng từ n / a, trong tệp C: DataValues.csv:

    Thay thế văn bản C: DataValues.csv, null n / a

    Quét tất cả các tệp INI trong thư mục C: Users (+ thư mục con) thay thế tất cả các lần xuất hiện của Máy chủ = Máy chủ cũ bằng Máy chủ = Mới, sử dụng tìm kiếm không phân biệt chữ hoa

    FORFILES / P gay C: Người dùng trực tuyến / M * .ini / S / C là Cmd / C Thay thế @path Server = Máy chủ cũ = Mới / Tôi Rằng

    Quét tất cả các tệp CFG trong hồ sơ người dùng hiện tại thay thế Trang p @ ssw0rd, bằng PA PA woRdiêu bằng cách sử dụng tìm kiếm phân biệt chữ hoa chữ thường:

    FORFILES / P Lối% UserProfile% Lần / M * .cfg / S / C C Cdd / C Thay thế @path p @ ssw0rd PA $$ woRd tựa

    Như bạn có thể thấy bên dưới, tập lệnh rất đơn giản và có thể dễ dàng sửa đổi để phù hợp với bất kỳ tình huống đặc biệt nào bạn có thể có. Thay phiên, bạn có thể muốn tạo các bản sao của tập lệnh mã hóa các giá trị cụ thể để bạn có thể thực thi lệnh bằng cách nhấp đúp và / hoặc cho phép bạn dễ dàng phân phối nó cho người khác.

    Kịch bản

    'Thay thế văn bản
    'Viết bởi: Jason Faulkner
    'SysadminGeek.com

    'Tập lệnh này phải được đặt trong một thư mục được chỉ định trong biến PATH của hệ thống của bạn.

    'Cách sử dụng (WScript):
    'Thay thế Tên tệp OldText NewText [/ I]

    '/ I (tùy chọn) - Kết hợp văn bản không phân biệt chữ hoa chữ thường

    Đặt oArss = WScript.Argument

    intCaseSensitive = 0
    Cho i = 3 đến oArss.Count-1
    Nếu UCase (oArss (i)) = "/ I" thì intCaseSensitive = 1
    Kế tiếp

    Đặt oFSO = CreateObject ("Scripting.FileSystemObject")

    Nếu không phải oFSO.FileExists (oArss (0)) thì
    WScript.Echo "Tệp được chỉ định không tồn tại."
    Khác
    Đặt oFile = oFSO.OpenTextFile (oArss (0), 1)
    strText = oFile.ReadTất cả
    oFile. Đóng

    strText = Thay thế (strText, oArss (1), oArss (2), 1, -1, intCaseSensitive)

    Đặt oFile = oFSO.OpenTextFile (oArss (0), 2)
    oFile.WriteLine strText
    oFile. Đóng
    Kết thúc nếu

    Ghi chú bổ sung

    Theo mặc định, Windows sử dụng WScript để thực thi các tệp VBScript (VBS). Vấn đề duy nhất mà điều này có thể gây ra là bất kỳ lỗi nào và / hoặc thông báo từ tập lệnh sẽ xuất hiện dưới dạng hộp bật lên. Đối với một công cụ dòng lệnh, tốt nhất là các thông báo này sẽ được hiển thị trong bảng điều khiển. Có một vài cách bạn có thể thực hiện điều này.

    Thay đổi trình xử lý mặc định của các tệp VBScript thành CScript bằng cách chạy lệnh này từ dấu nhắc lệnh (với quyền Quản trị viên):

    CScript // H: CScript

    Chạy kịch bản Thay thế một cách rõ ràng bằng cách sử dụng lệnh CScript:

    CScript cảm C: PathToReplaceText.vbs W // B FileName OldText NewText [/ I]

    Trong trường hợp đặc biệt, việc thực hiện Thay thế từ một tập lệnh bó thường ngụ ý CScript là công cụ được sử dụng bất kể trình xử lý mặc định. Bạn chắc chắn sẽ muốn kiểm tra điều này mặc dù trước khi dựa vào chức năng này.

    Tải xuống Script Script từ SysadminGeek.com