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

Viết kịch bản Terminal Service - Phần 1
Viết kịch bản Terminal Service - Phần 2
Viết kịch bản Terminal Service - Phần 3
Viết kịch bản Terminal Service - Phần 4
Viết kịch bản Terminal Service - Phần 5
Viết kịch bản Terminal Service - Phần 6
Viết kịch bản Terminal Service - Phần 7
Viết kịch bản Terminal Service - Phần 8
Viết kịch bản Terminal Service - Phần 9

Brien M. Posey

Quản trị mạng - Trong phần trước của loạt bài này, chúng tôi đã giới thiệu cho các bạn cách tạo một menu đơn giản. Menu này chưa có gì thực hiện với các dịch vụ kết cuối, tuy nhiên trong quá trình tạo, chúng tôi đã giải thích một số khái niệm quan trọng mang tính chất mở đầu. Lúc này, bạn đã biết được các menu làm việc như thế nào, tiếp sau đó chúng tôi muốn điều chỉnh menu để thích hợp với mục đích cụ thể của dịch vụ kết cuối. Bạn có thể xem lại phần 8 của loạt bài này, giới thiệu cách thực thi lệnh Query Users và ghi các kết quả vào một file bản ghi theo ngày tháng cụ thể. Trong phần này, chúng tôi sẽ sử dụng các khái niệm đã giới thiệu trong phần 8 và 9 và tạo một kịch bản trên những khái niệm đã giới thiệu đó. Với mục đích minh chứng, chúng tôi sẽ tạo một kịch bản đơn giản để bạn lựa chọn giữa: tạo một file bản ghi, xem một file bản ghi cụ thể hoặc in file bản ghi.

Tạo menu

Như những gì đã được giới thiệu trong phần 9, chúng tôi đã tạo một menu đơn giản yêu cầu bạn nhập vào một ký tự tương ứng với loại xe ưa thích của mình. Khi bạn đã hoàn thành việc lựa chọn, menu sẽ thực thi một thường trình con để thông báo cho bạn rằng loại xe gì bạn đã chọn. Mặc dù kiểu menu này khá đơn giản nhưng chúng ta sẽ điều chỉnh dần để thích hợp và có thể làm việc với lệnh Query Users.

Với mục đích dễ hiểu, chúng tôi liệt kê kịch bản menu đã tạo trong phần 9:

@echo off
set _car=D
:Loop
cls
Echo What is your favorite car:
Echo A: Lamborghini
Echo B: Ferrari
Echo C: Porsche
Echo.
Echo D: Quit
Echo.
Set /P _car=Please enter your choice:
if not "%_car%"=="" set _car=%_car:~0,1%
REM echo %_car%
If /i "%_car%"=="A" goto sub_lambo
If /i "%_car%"=="B" goto sub_ferrari
If /i "%_car%"=="C" goto sub_Porsche
if /I "%_car%"=="D" goto:eof
goto:loop
:sub_lambo
echo You chose a Lamborghini
goto:eof
:sub_ferrari
echo You chose a Ferrari
goto:eof
:sub_porsche
echo You chose a Porsche

Below is a listing of the Query Users script from Part 8:
@Echo Off
Echo Creating log file.
for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log
Query User > %datefile%
Echo Log file created successfully.

Việc kết hợp hai kịch bản rất đơn giản. Thứ đầu tiên mà chúng tôi đã thực hiện là loại bỏ biến có tên Car và thay thế nó bằng một biến khác thích hợp hơn. Lúc này, chúng ta gọi nó là biến Menu. Thay thế tên các thường trình con Lamborghini, Ferrari và Porsche thành Create, View và Print. Rõ ràng chúng ta vẫn phải sửa lại lệnh gọi các thường trình con đó với những tên mới thay một cách tương ứng. Sau khi thực hiện xong vấn đề đó, chúng ta thay đổi nội dung để hiển thị ý định mới của menu. Cuối cùng tiến hành paste phần nội dung của kịch bản Query Users vào một trong các thường trình con. Sau khi thực hiện điều đó, kịch bản lúc này sẽ như dưới đây:

@echo off
set _menu=D
:Loop
cls
Echo What do you want to do?
Echo A: Create a new Query Users report
Echo B: View a Previous Report
Echo C: Print a Previous Report
Echo.
Echo D: Quit
Echo.
Set /P _menu=Please enter your choice:
if not "%_menu%"=="" set _menu=%_menu:~0,1%
REM echo %_menu%
If /i "%_menu%"=="A" goto sub_create
If /i "%_menu%"=="B" goto sub_view
If /i "%_menu%"=="C" goto sub_print
if /I "%_menu%"=="D" goto:eof
goto:loop
:sub_create
echo You chose to create a report
@Echo Off
Echo Creating log file.
for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log
Query User > %datefile%
Echo Log file created successfully.
goto:eof
:sub_view
echo You chose to view a report
goto:eof
:sub_print
echo You chose to print a report

Với kịch bản lúc này, chúng ta có thể chọn tùy chọn A, khi đó kịch bản sẽ tạo một file bản ghi theo ngày tháng cụ thể gồm có các kết quả của lệnh Query User. Tại thời điểm này các tùy chọn view và print nội dung của file bản ghi vẫn trống rỗng vì vẫn chưa giới thiệu các lệnh cần thiết để thực hiện những nội dung này.

View file bản ghi

Lúc này chúng ta đã tạo được một thường trình con tạo file bản ghi, các bạn sẽ được giới thiệu về cách xây dựng một thường trình con như thế nào để có thể xem các nội dung bên trong của file bản ghi. Nếu chúng ta muốn xem một cách đơn giản file bản ghi đã tạo hôm nay thì việc tạo một thường trình con sẽ rất đơn giản. Nội dung kịch bản của thường trình con sẽ như dưới đây:

:sub_view
echo You chose to view a report
for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log
Type %datefile%.log |More
goto:eof

Thường trình con ở trên rất đơn giản và dễ hiểu, tuy nhiên nó sử dụng một vài lệnh mà bạn vẫn chưa được giới thiệu đến phần này. Chính vì vậy chúng tôi sẽ giới thiệu từng dòng lệnh một cho các bạn. Dòng đầu tiên tuyên bố thường trình con, dòng thứ hai là một trình để in dòng “You Chose to View a Report”.

Dòng thứ ba của thường trình con giống hệt một dòng trong kịch bản của phần 8. Dòng này sẽ lấy ngày, tháng, năm và kết hợp chúng với biến môi trường có tên %datefile%.

Tiếp đó đến dòng cuối cùng của file gồm có cả hai lệnh mới. Lệnh Type sẽ hiển thị nội dung của file. Trong trường hợp này sẽ không hiển thị tên file cụ thể, nhưng chúng ta có biến môi trường được sử dụng như một phần của tên file. Các file bản ghi được tạo bởi kịch bản này là các file văn bản đơn giản có đuôi mở rộng .log. Chính vì vậy, nếu nhập vào lệnh Type %datefile%.log kịch bản sẽ hiển thị nội dung của file bản ghi đã được tạo hôm nay.

Sau filename là ký tự dẫn (\) và từ More. Lý do tại sao người viết kịch bản lại thể hiện như vậy là vì đôi khi một file bản ghi có thể quá dài khi thể hiện toàn bộ trên màn hình. Thông thường khi điều đó xảy ra, nội dung của file sẽ dừng ở cuối màn hình có thanh cuộn. Khi bạn thêm \more vào lệnh type thì Windows sẽ dừng ở mỗi một màn hình dể bạn có thể đọc thông tin. Windows sẽ chuyển sang màn hình kế nếu bạn nhấn vào phím bất kỳ nào đó.

Dòng cuối dùng trong thường trình là lệnh goto: EOF, lệnh này đã được chúng tôi giải thích trong các phần trước, bạn có thể xem lại.

Kết luận

Trong phần này, chúng tôi đã giới thiệu cho các bạn về cách tạo các menu cho một terminal service cụ thể, giới thiệu cách sử dụng một tùy chọn menu để hiển thị nội dung của file bản ghi. Tuy nhiên đôi khi chúng ta lại muốn review một file bản ghi từ môt ngày tháng khác. Chính vì vậy trong các bài sau trong loạt bài này, chúng tôi sẽ giới thiệu cách thực hiện đó và giới thiệu các tạo một thường trình con để sử dụng print nội dung file bản ghi.

Thứ Tư, 01/10/2008 09:38
51 👨 1.226
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp