Chuyên cung cấp tài liệu


Từ khóa cần tìm:

Viết kịch bản Terminal Service - Phần 6

Thứ hai - 22/09/2008 11:05
Viết kịch bản Terminal Service - Phần 6

Viết kịch bản Terminal Service - Phần 6

Cho đến đây, chúng tôi đã giới thiệu khá nhiều các lệnh khác nhau để các bạn có thể sử dụng nhằm xây dựng các kịch bản cho terminal server. Phần này chúng tôi tiếp tục bằng cách giới thiệu về một số kịch bản và một số cú pháp trong thực hiện lệnh.

Khi nhìn lại các phần trước của loạt bài này, có một thứ mà bạn chắc hẳn sẽ lưu ý đó là có rất nhiều lệnh mà chúng tôi đã giới thiệu thiên về việc tạo các kiểu báo cáo khác nhau. Đó cũng là ý định mà trong phần này chúng tôi giới thiệu cho các bạn cách tạo một báo cáo đơn giản. Chúng tôi sẽ dần dần xây dựng trên kỹ thuật này cho các phần tiếp theo. Sau đó trong ở phần cuối của loạt bài sẽ giới thiệu cho các bạn cách tạo một số kịch bản sử dụng các lệnh mà chúng ta đã được biết nhưng không liên quan đến việc báo cáo.

Thứ đầu tiên mà bạn cần biết về việc tạo kich bản nhằm tạo báo cáo là cách lưu báo cáo. Cho ví dụ, trong phần trước mà chúng tôi đã giới thiệu cho các bạn về cách sử dụng lệnh Query User thì việc nhập lệnh này vào cửa sổ lệnh sẽ hiển thị các thông tin về người dùng hiện đang kết nối với máy chủ của bạn. Mặc dù đây là một lệnh khá hữu dụng nhưng khả năng của nó cũng bị hạn chế khi chỉ sử dụng bản thân nó. Tất cả những gì mà nó thực hiện là hiển thị người dùng hiện đã đăng nhập. Hãy coi như bạn đã thực hiện xong vấn đề đó và bây giờ là lúc cần lưu các thông tin này để bạn có thể xem xét sau mà không cần chạy truy vấn. Cách đơn giản nhất để thực hiện điều này là hướng đầu ra vào một file bản ghi nào đó.

Hệ điều hành Windows sử dụng dấu > để chỉ thị rằng đầu ra của lệnh sẽ được chuyển tiếp. Chính vì vậy, nếu bạn muốn tạo một file bản ghi gồm các kết quả của lệnh query user thì bạn cần nhập vào lệnh Query User, dấu >, và sau đó là đường dẫn và tên file của file bản ghi muốn tạo. Cho ví dụ, nếu bạn muốn tạo một file bản ghi có tên SAMPLE.LOG, hãy nhập vào lệnh dưới đây:

QUERY USER > SAMPLE.LOG

Trong ví dụ này, file bản ghi được ghi vào thư mục hiện hành bất kể mọi thứ. Tự file bản ghi này không hề có chút hấp dẫn nào. Nó thực sự không có gì ngoài một file văn bản. Công cụ thường dùng cho việc mở một file văn bản trong Windows là Notepad. Nhưng ở đây bạn có thể sử dụng lệnh Type để xem toàn bộ nội dung của file văn bản từ tiện ích dòng lệnh. Cho ví dụ, nếu muốn xem file bản ghi mà chúng ta vừa tạo, bạn chỉ cần nhập vào lệnh dưới đây:

TYPE SAMPLE.LOG

Bạn có thể thấy ví dụ về lệnh này trong hình A.


Hình A: Lệnh Type cho phép bạn xem nội dung của file văn bản

Đôi khi bạn có thể gặp tình huống trong đó file văn bản quá dài để có thể hiển thị đầy đủ, vì không có thanh cuộn màn hình. Khi xảy ra điều này, bạn có thể gắn thêm vào dấu (|) và từ More vào cuối của lệnh Type. Lệnh này sẽ làm cho Windows tạm dừng sau mỗi màn hình đầy thông tin, và đợi bạn nhấn phím tiếp theo trước khi hiển thị phần văn bản kế tiếp. Cho ví dụ, nếu file bản ghi mà bạn đã tạo quá dài đối với màn hình hiển thị thì bạn cần phải sử dụng những phần thêm dưới đây vào lệnh:

TYPE SAMPLE.LOG | MORE

Trong thế giới thực, bạn có thể sẽ không bao giờ tạo một file bản ghi gồm các kết quả của lệnh Query User. Lý do chúng tôi sử dụng lệnh này chỉ là giới thiệu những thứ đơn giản trước đề các bạn làm quen một cách từ từ. Tuy nhiên cũng có khá nhiều giá trị mang lại trong việc tạo file văn bản chứa các kết quả báo cáo.

Tuy kỹ thuật này hoạt động khá tốt nhưng vẫn có một số vấn đề nhỏ phát sinh. Đầu tiên đó là bạn phải nhớ rằng mục tiêu của chúng tôi là xây dựng một kịch bản. Các kịch bản thường thiên về việc chạy nhiều lần. Bất cứ thời điểm nào bạn chuyển tiếp một đầu ra của lệnh vào một file, Windows sẽ kiểm tra xem file đó có tồn tại hay không. Nếu file này không tồn tại, Windows sẽ tạo một file mới có tên như bạn vừa đặt. Nếu file này đã tồn tại từ trước thì đầu ra sẽ được nối thêm vào phần cuối của file. Cách này tỏ ra khá nhiều ưu điểm nhưng đôi khi vẫn có một số vấn đề.

Cách đầu ra được gắn vào file nếu file đó tồn tại khá hữu ích vì nó sẽ cho phép bạn tạo thêm nhiều báo cáo gắn cùng. Việc gắn các đầu ra chuyển tiếp vào một file tồn tại sẽ cho phép tạo kịch bản để xây dựng một báo cáo theo từng thời điểm thay cho việc phải đưa đầu ra vào các file riêng biệt. Cho ví dụ, giả dụ bạn tạo một kịch bản gồm có các lệnh dưới đây:

Query User > sample.log
Query Process > sample.log
Query Session > sample.log

Tiếp đó, một kịch bản giống như vậy có thể sẽ không hữu dụng nữa, nhưng khi kịch bản được hoàn tất, file bản ghi cuối cùng sẽ chứa đầu ra của các lệnh đã được thực thi.

Tuy vậy, cách Windows nối thêm các thông tin vào các file văn bản đang tồn tại đôi khi không tốt. Giả dụ rằng bạn muốn tạo một kịch bản để tự động chạy ở một thời điểm cụ thể nào đó trong ngày. Trong tình huống như vậy, bạn có thể sẽ không muốn đầu ra được gắn vào phần cuối của file văn bản đang tồn tại hàng ngày. Thêm vào đó việc xóa file văn bản đang tồn tại này trước khi chạy kịch bản cũng là một tùy chọn không thiết thực.

Trong các tình huống như vậy, bạn cần thiết kế một kịch bản thay đổi tên file mỗi lần kịch bản được chạy. Một file mới sẽ phản ánh được ngày hoặc thời gian khi chạy kịch bản. Giả dụ rằng bạn muốn đưa các kết quả đầu ra vào một file có tên được ấn định  ngày. Lệnh này sẽ như sau:

for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log
Query User > %datefile%

Lệnh trên trông có vẻ như một lệnh sai ngữ pháp tuy nhiên chúng tôi sẽ giới thiệu cho bạn những gì được thực hiện trong lệnh đó ở phần tiếp theo.

Kết luận

Trong phần này, chúng tôi đã giới thiệu cho các bạn cách tạo các báo cáo trong một kịch bản. Trong phần tiếp theo của loạt này chúng tôi sẽ giới thiệu cho các bạn về cách xây dựng các khái niệm mà chúng ta đã thảo luận trong phần này.

Tác giả bài viết: Quang Tùng - GiangVien.Net

Nguồn tin: MSterminalservices

Tổng số điểm của bài viết là: 0 trong 0 đánh giá
Click để đánh giá bài viết

Những tin mới hơn

Những tin cũ hơn

 
(Chú ý: Website đang trong giai đoạn hoạt động thử nghiệm, đang định xin giấy phép MXH của Bộ TT & TT)
Lên đầu trang
Array
(
    [type] => 8192
    [message] => preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
    [file] => /home/pwhqfmvb/GiangVien/includes/countries.php
    [line] => 435
)