Tập tin bat là gì và tại sao chúng lại cần thiết? Sử dụng tệp hàng loạt cho Windows

Trong bài viết này, chúng ta sẽ xem xét một điều hữu ích như “ tập tin hàng loạt" Trước tiên chúng ta hãy xác định tập tin bat là gì. Tệp hàng loạt hoặc lô là các tệp văn bản đơn giản chứa các bộ lệnh ( hướng dẫn) thông dịch viên và có phần mở rộng bat hoặc cmd ( cmd chỉ hoạt động trong hệ điều hành dòng NT). Bạn có thể tạo và chỉnh sửa các tệp như vậy bằng notepad thông thường hoặc bất kỳ trình soạn thảo văn bản nào khác.

Bây giờ bạn có thể hỏi, tại sao bạn cần có khả năng ghi các tập tin bat như vậy? Và tại sao chúng lại cần thiết? Tôi sẽ cố gắng giải thích.

Thứ nhất, chúng được sử dụng để làm cho công việc dễ dàng hơn, tức là. ví dụ: bạn cần liên tục thực hiện một số thao tác mỗi ngày ( ví dụ: tạo một kho lưu trữ các tài liệu nhất định), với sự trợ giúp của tệp nội dung, việc này có thể được tự động hóa và bạn sẽ không còn tham gia vào đó nữa.

Thứ hai, các tệp bó này rất mạnh ( tất nhiên là nếu bạn biết cách viết chúng), I E. Bạn thậm chí có thể viết một chương trình tốt ( Ý tôi là về mặt chức năng). Về mặt cá nhân, chúng giúp ích cho tôi rất nhiều trong công việc và tôi chỉ đơn giản là quên mất một số thứ khi làm thủ công.

Bây giờ chúng ta hãy chuyển trực tiếp sang phần cơ bản của các tệp bó này. Chúng được tạo ra như thế nào? Bạn chỉ cần tạo một tài liệu văn bản đơn giản, mở nó và chuyển ngay đến tab “ Tệp-> lưu dưới dạng", hãy nhập thay vì phần mở rộng " Tài liệu văn bản.txt", Ví dụ " Tài liệu văn bản.bat" và lưu, vì vậy chúng tôi nhận được một tệp bó có phần mở rộng .bat, nhưng nó chưa làm được gì cả.

Để bắt đầu, tôi sẽ đưa ra một ví dụ về tệp bó mà tôi sử dụng tại nơi làm việc của mình để lưu trữ tài liệu.

"C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.doc "C:\Program Files\WinRAR\winrar. exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.xls "C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY -mm-dd E:\arhaccounts\ d:\accounts\*.txt

Bây giờ tôi sẽ cho bạn biết một chút về chức năng của tệp bó này. WinRar khởi động, sau đó các lệnh Winrar theo sau:

  • a - đây là để thêm vào kho lưu trữ;
  • -r - xử lý các thư mục con;
  • -dh - mở tập tin được chia sẻ;
  • -ed - không thêm các thư mục trống;
  • YYYY-mm-dd - thêm ngày hiện tại vào tên lưu trữ ( Định dạng ngày tháng);
  • E:\arhaccounts\ - đường dẫn nơi chứa kho lưu trữ cuối cùng;
  • d:\accounts\*.doc - đường dẫn và mặt nạ của các tệp cần được lưu trữ.

Trong trường hợp này, chúng tôi lưu trữ tất cả các tệp Word, Excel và văn bản; chúng tôi không cần lưu trữ phần còn lại. Bản lưu trữ của chúng tôi chuyển sang một đĩa khác và chúng tôi cũng sao chép bản lưu trữ kết quả sang một máy tính khác để các bản lưu trữ được lưu trữ ở một văn phòng khác. Quá trình sao chép diễn ra qua mạng nên máy tính nơi lưu trữ được sao chép phải được bật. Để làm điều này bạn có thể sử dụng lệnh sau:

Sao chép E:\arhaccounts\*.rar \\namecomp\arhiv\

Ví dụ về các lệnh cho tập tin bat

Bây giờ hãy xem các lệnh cơ bản mà bạn có thể sử dụng.

Nếu bạn cần xóa một tập tin, hãy viết như sau:

Del d:\file\test.doc


Để xóa toàn bộ thư mục, hãy viết:

Rd d:\file\

Nếu bạn cần xóa mọi thứ khỏi một thư mục nào đó mỗi lần, thì hãy sử dụng:

Tiếng vọng Y| del d:\file\

  • del d:\file\ - đây chính xác là việc xóa tất cả các tệp;
  • tiếng vang Y| - lệnh xác nhận việc xóa vì Nếu bạn không nhập lệnh này, bạn sẽ thấy một thông báo xác nhận việc xóa - “Tiếp tục” và bạn sẽ cần phải trả lời câu hỏi này mỗi lần.

Bây giờ hãy xem một ví dụ phức tạp hơn, trong đó điều kiện đã được đáp ứng:

@echo off "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\test.rar d:\test IF not EXIST d:\test\123.rar GOTO 1 IF EXIST d: \test\123.rar GOTO 2:2 "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\123.rar c:\ del d:\test\123.rar:1 del d:\test\test.rar end

Bây giờ tôi sẽ giải thích, giả sử bạn cần giải nén kho lưu trữ test.rar, kho lưu trữ này sẽ chứa nhiều tệp, nhưng nếu có tệp 123.rar ở đó, nó sẽ cần được giải nén vào thư mục gốc của ổ C, và phần còn lại của các tập tin sẽ không bị ảnh hưởng trong cùng một thư mục.

Theo thứ tự, cần có lệnh tắt @echo để không có gì được phản ánh trên màn hình ( Về cơ bản, nếu không cần thiết, bạn có thể bỏ qua dòng này). Tiếp theo, chúng ta khởi chạy Winrar và giải nén kho lưu trữ test.rar vào thư mục test. Sau đó xuất hiện điều kiện nếu trong thư mục kiểm tra ( sau khi giải nén test.rar) ta không có file 123.rar thì ta chỉ cần thực thi file batch và đi đến dòng: 1 rồi xóa file test.rar vì không cần thiết vì Chúng tôi đã giải nén mọi thứ chúng tôi cần. Nhưng nếu có tệp 123.rar ở đó, thì việc thực thi tệp bó sẽ chuyển sang dòng: 2, sau đó tệp 123.rar đã được giải nén vào thư mục gốc của ổ C. Nói cách khác, chúng ta đã đáp ứng được điều kiện , có file thì làm thế này, không có file thì làm thế này. Giả sử rằng nếu chúng ta không chỉ định điều kiện trong ví dụ này thì tệp bó của chúng ta sẽ báo lỗi khi chúng ta không có tệp 123.rar trong thư mục này.

Bây giờ chúng ta hãy xem một ví dụ: giả sử bạn cần di chuyển các tệp từ một thư mục nằm trên ổ D sang ổ đĩa flash mỗi lần. Mỗi lần bạn sẽ phải vào ổ đĩa máy tính D của tôi, chọn thư mục mong muốn, chọn tất cả các tệp từ đó và cắt nó, sau đó chỉ cần vào ổ đĩa flash và dán nó. Với sự trợ giúp của tệp nội dung, việc này được thực hiện chỉ bằng một cú nhấp chuột ( với một điều kiện là mỗi lần ổ flash sẽ là ổ G hoặc bất cứ thứ gì bạn có). Đây là một ví dụ về một tệp bó như vậy:

Di chuyển "D:\catalog\*.doc" G:\catalognaflehe\

Và tất cả các tệp có phần mở rộng doc nằm trong thư mục D:\catalog sẽ được chuyển sang ổ đĩa flash. Bây giờ tôi muốn nói rằng bạn có thể sử dụng tập lệnh trong các tệp bó ( kịch bản) bằng cách sử dụng Windows Scripting Host và nếu cần, chẳng hạn như để hiển thị thông báo sau khi sao chép tệp ( ví dụ trước) dán cái này:

Echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Đã sao chép tệp"); >> %temp%\mes.js bắt đầu %temp%\mes.js deltree /y %temp%\mes.js

Trên thực tế, bạn có thể nói rất nhiều về việc viết các tệp bó và tất nhiên, điều này không thể gói gọn trong một bài viết; ở đây tôi chỉ trình bày các nguyên tắc được sử dụng khi viết tệp bat, có thể nói là cơ sở. Nếu bạn muốn biết thêm các lệnh để ghi tập tin batch, bạn có thể dễ dàng xem chúng bằng cách gõ ( Bắt đầu - Chạy – cmd) lệnh trợ giúp, nhưng tất nhiên không phải tất cả các lệnh đều có thể được sử dụng trong các tệp bó. Chúc may mắn khi viết tập tin BAT ( áo sơ mi cơ thể).

Tiếp tục chủ đề trong bài viết -

Bất cứ ai cũng có thể viết tập tin bat!

Bộ xử lý lệnh

Nhiều hệ điều hành, bao gồm cả những hệ điều hành do Microsoft phát triển, có bộ xử lý lệnh. Đây là tên của một chương trình bắt đầu thực hiện các hành động khác nhau để đáp lại các lệnh do người dùng nhập từ bàn phím. Về cơ bản, những hành động này bao gồm khởi chạy các chương trình cần thiết với các thông số nhất định. Nhưng không chỉ; Sau này chúng ta sẽ thấy rằng một số lệnh được thực thi trực tiếp bởi bộ xử lý lệnh. Về cơ bản, đây là các lệnh dùng để kiểm soát bối cảnh và trình tự thực hiện lệnh. Tuy nhiên, chúng ta sẽ không suy nghĩ quá sâu về bản chất của các lệnh, ít nhất là trừ khi chúng ta phải làm vậy. Quan trọng hơn, bất kỳ chương trình nào về mặt kỹ thuật có thể chạy từ dòng lệnh đều được bộ xử lý lệnh coi là một lệnh. Nó không phân biệt giữa các lệnh gốc được tích hợp ban đầu trong hệ điều hành và các chương trình được cài đặt trên nó.

Để khởi động bộ xử lý lệnh:

    Nhấn nút Bắt đầu. Menu chính sẽ được hiển thị trên màn hình.

    Chọn Chạy từ menu chính. Một hộp thoại sẽ xuất hiện trên màn hình Bắt đầu chương trình.

    Trong trường Mở, nhập chuỗi cmd.

    Nhấn nút ĐƯỢC RỒI. Một cửa sổ bộ xử lý lệnh sẽ xuất hiện trên màn hình.

Dòng lệnh và lệnh

Cửa sổ bộ xử lý lệnh ở dạng ban đầu trông có vẻ ảm đạm và làm việc với nó không thuận tiện lắm đối với hầu hết mọi người. Việc sử dụng trình quản lý tệp kiểu Norton Commander sẽ dễ dàng hơn nhiều. Chúng cung cấp cả hai công cụ để điều hướng nhanh hệ thống tệp và tính thời gian để nhập lệnh.

Để nhập lệnh:

    Gõ văn bản lệnh tại dòng lệnh.

    cắm chìa khóa Đi vào.

Bộ xử lý lệnh và các lệnh của hệ điều hành được mô tả trong tài liệu vận hành cho phần sau. Tài liệu này được chứa một phần trong chính hệ điều hành. Để truy cập nó sử dụng lệnh giúp đỡ. Lệnh này hiển thị danh sách các lệnh có sẵn. Để có được mô tả về một lệnh cụ thể, hãy sử dụng lệnh đó làm tham số giúp đỡ tên của cô ấy nên được chỉ định. Dòng lệnh hiển thị trong danh sách sau đây hiển thị mô tả về lệnh .

Nếu bạn cố gắng nhập lệnh giúp đỡ, bạn có thể nhận thấy rằng kết quả công việc của nó (cái gọi là đầu ra) không vừa trên một màn hình. Vấn đề tương tự xảy ra với văn bản mô tả lệnh . Tin tốt là đầu ra có thể được chuyển hướng đến một tệp. Dòng lệnh hiển thị trong danh sách sau sẽ tạo ra tệp lệnh.txt, chứa danh sách tất cả các lệnh MS-DOS.

trợ giúp > command.txt

Để tạo một tệp có mô tả lệnh , bạn cần đưa ra lệnh sau (bạn có thể đặt tên tệp đầu ra bất cứ thứ gì).

trợ giúp cho > for.txt

Tổng cộng, có ít hơn 80 lệnh trong các hệ điều hành hiện đại của Microsoft và không thể mô tả chúng trong một bài viết. Ở đây chúng ta chỉ có thể đề cập đến một số lệnh hữu ích để tự động xử lý tệp và chỉ ra cách sử dụng chúng. Các lệnh này sẽ được sử dụng trong các ví dụ tiếp theo. Bạn luôn có thể làm rõ chi tiết bằng lệnh giúp đỡ hoặc trong thư mục.

sao chép- sao chép một hoặc nhiều tập tin;

del- xóa một hoặc nhiều tập tin;

di chuyển- di chuyển một hoặc nhiều tập tin hoặc thư mục;

đổi tên(viết tắt ren) - đổi tên một hoặc nhiều tệp hoặc thư mục;

xcopy- sao chép cây thư mục con;

mkdir(viết tắt md) - tạo một thư mục;

rmdir(viết tắt thứ) - xóa một thư mục.

Một trong những quy tắc chung của cú pháp lệnh MS-DOS là khi chỉ định tham số, nguồn được chỉ định trước, sau đó là kết quả. Ví dụ: nếu chúng ta muốn di chuyển một tập tin bia.txt từ danh mục hộp vào danh mục bàn, chúng ta phải nhập lệnh được đưa ra trong danh sách sau đây.

di chuyển bảng\bia.txt

Đầu tiên là chuyển cái gì, sau đó chuyển đến đâu.

Nếu chúng ta muốn đổi tên tập tin lena.txt nộp natasha.txt, thì lệnh sẽ được viết như dưới đây.

ren lena.txt natasha.txt

Đầu tiên là đổi tên cái gì, sau đó đổi tên cái gì.

Thư mục hiện tại. Đường dẫn tuyệt đối và tương đối

Khi làm việc với các lệnh tập tin, khái niệm về thư mục hiện tại trở nên cực kỳ quan trọng. Vấn đề là khi chỉ định một tệp làm tham số lệnh, chúng tôi luôn sử dụng một trong hai cách có thể để trỏ đến chúng: đường dẫn tuyệt đối hoặc đường dẫn tương đối. Trong đường dẫn đầy đủ, chúng tôi chỉ định mọi thứ bắt đầu bằng ổ đĩa (hoặc tên mạng của máy tính), ví dụ: d:\misha\box\bia.txt. Bất kể thư mục nào hiện tại khi lệnh được nhập, đường dẫn đầy đủ sẽ tương ứng với cùng một tệp. Đối với đường dẫn tương đối, thư mục hiện tại đóng vai trò là điểm bắt đầu. Trường hợp đơn giản nhất của đường dẫn tương đối là tên tệp. Trong ngữ cảnh thực thi lệnh, nó có nghĩa là một tệp có tên đó nằm trong thư mục hiện tại.

Để ghi một đường dẫn tương đối tới thư mục hiện tại, cần có một mục nhập có điều kiện . (chấm). Để ghi đường dẫn tương đối đến thư mục chứa thư mục hiện tại có ký hiệu điều kiện .. (hai dấu chấm). Lệnh hiển thị trong danh sách sau đây sao chép tất cả các tệp từ thư mục hiện tại vào thư mục hàng xóm, nằm bên cạnh nó.

sao chép *.* .\neighbor

Tập tin hàng loạt

Cho đến bây giờ, khi đưa ra ví dụ, chúng tôi giả định rằng chúng tôi luôn nhập lệnh theo cách thủ công. Khi xử lý một số lượng lớn tệp hoặc thực hiện các lệnh giống nhau một cách có hệ thống, điều này sẽ trở nên cồng kềnh. Do đó, bộ xử lý lệnh cung cấp khả năng thực thi các tệp lệnh. Tệp bó là một tệp văn bản trong đó các lệnh (hoặc ít nhất một lệnh) được nhập. Một tệp bó ví dụ được hiển thị trong danh sách sau đây. Hãy thử đoán xem tập tin batch này làm gì.

trợ giúp sao chép > copy.help

giúp di chuyển > di chuyển.help

di chuyển *.help msdos-help

Nếu mục đích của tệp này vẫn còn là một bí ẩn đối với bạn, thì hãy thử tạo và thực thi nó. Thông thường, người ta thường cung cấp phần mở rộng cho các tệp lệnh con dơi. Đây là cách các tệp thuộc loại này được bộ xử lý lệnh nhận dạng. Ví dụ, tập tin này có thể được gọi là make-help.bat.

Để chạy tệp bó:

    Nhập tên của anh ấy như một lệnh. Sau đó, tập tin batch sẽ được thực thi.

Trong một tập tin batch, mỗi lệnh chiếm một dòng. Chính xác hơn, có cách đặt một lệnh trên nhiều dòng liên tiếp; để làm được điều này, ngay trước mỗi lần ngắt dòng bạn nên đặt ký hiệu “cap” ^ . (Mỗi chữ hoa phải là ký tự cuối cùng trên dòng của nó; không được có dấu cách hoặc tab sau nó.) Một ví dụ về lệnh như vậy được hiển thị trong danh sách sau đây.

nếu tồn tại disser.txt ^

sao chép disser.txt ^

d:\science\papers\drafts\sources

Nhưng để đơn giản, để không phải lúc nào cũng đặt chỗ trước, chúng ta sẽ giả định rằng theo một nghĩa nào đó, đây là một dòng dài “hợp lý”.

Khi một tệp bó được thực thi, bộ xử lý lệnh sẽ quét nó từ trên xuống dưới từ dòng đầu tiên đến dòng cuối cùng và thực thi các lệnh theo thứ tự mà nó gặp chúng. Nói chung, nó thực hiện chúng như thể chúng ta nhập từng cái một cách thủ công. Nói chung, vì một số lệnh hoạt động hơi khác khi được nhập thủ công và khi được thực thi từ một tệp bó.

Nhìn về phía trước, giả sử rằng, nếu cần, trình tự thực hiện lệnh có thể được thay đổi bằng các lệnh điều khiển (điều gì có thể gây ra nhu cầu như vậy là một câu hỏi riêng).

Đừng nhầm lẫn thư mục hiện tại với thư mục chứa tệp bó sẽ được khởi chạy. Giả sử thư mục hiện tại là công việc, nó chứa một thư mục công cụ và thư mục công cụ lưu trữ các tệp bó. Bạn chạy một trong số chúng bằng lệnh công cụ\collect-image.bat. Vì vậy, “theo quan điểm” của tập tin lệnh này, thư mục hiện tại sẽ vẫn là công việc, nhưng không công cụ.

Nhận xét tệp bó và đầu ra của nó. lệnh echo và rem

Tệp bó về cơ bản là một chương trình được viết bằng ngôn ngữ bộ xử lý lệnh của hệ điều hành. Văn bản của chương trình phải có kèm theo các nhận xét để khi bạn xem lại nó một thời gian sau, bạn không phải đau đầu nhớ lại lý do tại sao chương trình này lại cần thiết và cách thức hoạt động của nó.

Hệ thống lệnh MS-DOS cung cấp lệnh tạo bình luận: rem. Đây là một lệnh giả không liên quan đến việc thực hiện bất kỳ hành động nào nhưng cho phép bạn viết văn bản tùy ý trên dòng sau tên của bạn. Hơn nữa, bộ xử lý lệnh không coi đó là lỗi cú pháp. Một ví dụ về định dạng tệp lệnh có nhận xét được hiển thị trong danh sách sau.

rem **************************************************** ****

rem Tạo tập tin trợ giúp

trợ giúp sao chép > copy.help

giúp di chuyển > di chuyển.help

di chuyển *.help msdos-help

Lưu ý các dòng trống chia tệp bó thành các “đoạn”. Thủ thuật đơn giản này cho phép bạn làm cho tệp bó của mình dễ đọc hơn.

Khi thực thi tệp bó trên, tất cả các lệnh sẽ được hiển thị trên màn hình khi chúng được thực thi, điều này không phải lúc nào cũng thuận tiện. Việc phát lệnh có thể bị vô hiệu hóa bằng lệnh @echo tắt. Biểu tượng "con chó" ở phía trước lệnh tiếng vangĐiều này có nghĩa là lệnh này phải được thực thi ở chế độ “im lặng”. Chúng ta có thể không sử dụng dòng lệnh tắt tiếng vang, nhưng hãy đặt một “con chó” trước mỗi lệnh.

Trong nhiều trường hợp, bạn muốn một tệp bó hiển thị một số thông báo nhất định trên màn hình (hoặc trong một tệp). Trong một số trường hợp, đây có thể là thông báo lỗi, trong một số trường hợp khác, đây là thông báo thông tin giải thích cho người dùng tệp bó về những gì đang xảy ra vào lúc này, khi chúng tôi tạo một số tệp hữu ích khác bằng tệp bó. Lệnh echo tương tự được sử dụng để hiển thị tin nhắn. Văn bản của thông báo sẽ được hiển thị sẽ được chuyển đến nó dưới dạng tham số. Danh sách các tệp bó được cải tiến được đưa ra dưới đây.

rem **************************************************** ****

rem Tạo tập tin trợ giúp cho lệnh sao chép và di chuyển

rem **************************************************** ****

@echo Đang tạo tệp trợ giúp. Một giây...

rem Tạo tập tin trợ giúp

trợ giúp sao chép > copy.help

giúp di chuyển > di chuyển.help

rem Tạo thư mục lưu trữ file trợ giúp

rem Di chuyển các tập tin trợ giúp vào thư mục đã chuẩn bị

di chuyển *.help msdos-help

tiếng vang Xong!

Truyền tham số vào tệp lệnh

Giả sử chúng ta muốn tạo một tệp bó trước tiên tạo trợ giúp mô tả lệnh do người dùng chỉ định, sau đó tải nó vào Notepad để xem. Bí quyết là bằng cách nào đó hãy cho nó biết vào lần tiếp theo khi chúng ta chạy tệp bó lệnh mà chúng ta quan tâm lần này.

Để giải quyết vấn đề này, một cơ chế xử lý tham số được cung cấp. Nó hoạt động khá đơn giản. Nếu, khi chạy một tệp bó, người dùng đã chỉ định một số tham số, thì trong văn bản của tệp bó, chúng tôi biểu thị tham số đầu tiên trong số đó bằng mục nhập %1 , mục thứ hai %2 , mục thứ ba %3 vân vân. Chúng tôi sử dụng các ký hiệu này trong văn bản của tệp lệnh giống như cách chúng tôi sử dụng đại từ trong lời nói tự nhiên.

Nội dung của tệp lệnh giải quyết vấn đề được hiển thị trong danh sách sau. Hãy chú ý đến lệnh giúp đỡ. Tham số đầu tiên của tệp lệnh được truyền cho nó dưới dạng tham số của nó.

rem Chúng tôi tạo một tệp có mô tả lệnh,

rem có tên được truyền dưới dạng tham số

trợ giúp %1 > help.tmp

rem Tải tệp mô tả vào trình soạn thảo Notepad

trợ giúp notepad.tmp

Giả sử chúng ta đặt tên cho tệp bó này show-help.bat. Ví dụ: để tải mô tả lệnh vào sổ ghi chú, thư mục, chúng ta phải nhập lệnh như sau.

thư mục show-help.bat

Tệp lệnh sau tạo một thư mục có tên được chỉ định trong tham số đầu tiên và ghi vào đó một tệp chứa văn bản mô tả lệnh được chỉ định trong tham số thứ hai.

rem Ví dụ về tệp lệnh có hai tham số

rem Tạo một thư mục có tên được chỉ định bởi tham số đầu tiên

rem Tạo một tệp trong đó có mô tả lệnh,

rem được chỉ định bởi tham số thứ hai

trợ giúp %2 > %1\%2.help

Điều gì xảy ra nếu người dùng chỉ định bốn tham số thay vì hai tham số khi chạy tệp bó này? Không sao đâu, chúng sẽ không can thiệp vào bất cứ điều gì, chỉ là chúng sẽ không được sử dụng thôi. Điều gì xảy ra nếu người dùng chỉ chỉ định tham số đầu tiên? Tham số thứ hai sẽ trống. Hiệu ứng sẽ như sau: tệp bó sẽ được thực thi, nhưng như thể thay cho bản ghi %2 không có gì. Lệnh trợ giúp sẽ tạo danh sách tất cả các lệnh và đặt nó vào một tệp có tên trống và phần mở rộng .help. Nếu người dùng chạy tệp này mà không chỉ định bất kỳ tham số nào thì khi bộ xử lý lệnh cố gắng thực thi lệnh md(hãy nhớ rằng đây là để tạo thư mục), chúng ta sẽ gặp lỗi cú pháp vì lệnh md phải có tham số.

Vì vậy, việc sử dụng các tham số tạo ra những cơ hội lớn nhưng có thể làm phức tạp mọi thứ một cách đáng kể. Để tập tin batch luôn hoạt động chính xác, cần phải kiểm tra tính chính xác của các tham số do người dùng chỉ định và bằng cách nào đó phản hồi với dữ liệu đầu vào không đầy đủ hoặc không chính xác. Tất nhiên, bạn không thể làm điều này, nhưng một tệp bó hoạt động không chính xác có thể gây ra sự cố, đặc biệt nếu nó liên quan đến việc xóa hoặc ghi đè dữ liệu.

Biến. đặt lệnh

Một biến là một giá trị được đặt tên. Trong sách giáo khoa lập trình, một biến thường được so sánh với một phong bì có ghi tên trên đó. Bạn có thể đặt một thứ gì đó bên trong phong bì, chẳng hạn như một số tiền nhất định - đây là giá trị của nó. Giống như phong bì, giá trị của biến có thể được thay đổi.

Để khai báo một biến và đồng thời gán giá trị cho nó, hãy sử dụng lệnh bộ. Một ví dụ về lệnh này được hiển thị trong danh sách sau đây.

Để trích xuất giá trị của một biến, tên của nó được đặt giữa hai dấu phần trăm, như minh họa bên dưới.

rem Trình biên dịch các tệp trợ giúp ở định dạng CHM

đặt help_compiler=c:\Hội thảo trợ giúp HTML\hcc.exe

rem Tệp trợ giúp dự án cho mô-đun "Kho"

đặt store_hpj=help\sources\store\store.hpj

rem Tệp trợ giúp dự án cho mô-đun "Bán hàng"

đặt sales_hpj=help\sources\sale\sale.hpj

rem Biên dịch tập tin trợ giúp

%help_compiler% %store_hpj%

%help_compiler% %sale_hpj%

Danh sách sau đây cho thấy tại sao các biến lại hữu ích.

Đầu tiên, chúng cho phép bạn sử dụng một đoạn ngắn đồng nghĩa với nó bên trong một tệp bó thay vì một đoạn dài (ví dụ: đường dẫn đến trình biên dịch tệp trợ giúp). Ít nhất là nó thuận tiện.

Thứ hai, chúng cho phép bạn tránh lặp lại các đoạn văn bản của tệp lệnh có thể thay đổi trong tương lai. Hãy tưởng tượng rằng chúng tôi đã cài đặt lại Microsoft HTML Workshop vào một thư mục khác. Nếu một biến được sử dụng trong một tệp bó để ghi lại đường dẫn đến nó, thì chỉ cần sửa một dòng trong tệp bó, cụ thể là dòng trong đó giá trị của biến được gán là đủ trình biên dịch trợ giúp. Nếu chúng ta viết đường dẫn đến trình biên dịch mỗi khi nó cần được gọi, thì sau khi thay đổi đường dẫn, chúng ta sẽ phải sửa từng dòng như vậy. Trong ví dụ trên có hai tệp, nhưng trong một dự án thực tế có thể dễ dàng có năm hoặc mười lăm tệp, tùy thuộc vào số lượng tệp trợ giúp mà chúng ta muốn biên dịch. Vấn đề không phải là việc sửa thủ công từng dòng là khó (xét cho cùng thì chưa có ai hủy lệnh “sao chép” và “dán”) mà là điều này làm tăng đáng kể khả năng xảy ra lỗi vô tình.

Các tham số của tệp bó cũng là các biến, nhưng chúng khác với các biến thông thường ở chỗ giá trị của chúng được đặt khi tệp bó được khởi chạy. Trong tương lai, khi nói về các biến, đặc biệt là về cách làm việc với các giá trị của chúng, chúng ta cũng muốn nói đến các tham số của tệp lệnh, ít nhất là trong trường hợp không có sự bảo lưu rõ ràng về điều này.

Khi ghi các tệp bó, kỹ thuật sau thường được sử dụng: một số giá trị biến được chỉ định cạnh nhau (hoặc xen kẽ với một số ký hiệu hoặc dòng), để thu được một số giá trị có ý nghĩa mới. Một ví dụ được hiển thị trong danh sách sau đây.

Kiểm tra các điều kiện và lựa chọn các tùy chọn. lệnh if và goto

Lệnh if cho phép bạn chọn các nhóm lệnh trong một tệp bó được thực thi hoặc không được thực thi tùy thuộc vào các điều kiện nhất định. Nó dùng để làm gì?

Kiểm tra điều kiện gần như là một bước cần thiết khi tạo file batch sử dụng tham số. Trước khi bắt đầu công việc, tệp bó thường cần đảm bảo rằng bộ tham số chính xác được truyền cho nó. Nếu không, có nguy cơ cao là nó sẽ được thực thi không chính xác hoặc không hiệu quả và người dùng sẽ chỉ thắc mắc vấn đề là gì. Hơn nữa, nếu một tệp bó xóa, di chuyển hoặc ghi đè bất kỳ dữ liệu nào, nó thậm chí có thể gây ra thiệt hại nếu tham số không chính xác.

Danh sách sau đây hiển thị tệp lệnh biên dịch tệp trợ giúp mà bạn đã quen thuộc. Việc kiểm tra tính không trống của tham số đầu tiên đã được thêm vào phần đầu của tệp lệnh. Xin lưu ý đặc điểm cú pháp này: thao tác so sánh sử dụng dấu bằng kép. Nếu tham số đầu tiên không trống, lệnh goto sẽ được thực thi, lệnh này sẽ ném shell vào nhãn đã chỉ định. Trong trường hợp này, tên của nhãn này là biên dịch. Lưu ý rằng khi nhãn xuất hiện, tên của nó được đặt trước dấu hai chấm, nhưng trong lệnh goto thì không. Nếu tham số đầu tiên trống, shell sẽ chuyển sang dòng tiếp theo và tạo ra thông báo lỗi. Và sau đó đến cái tiếp theo, chuyển nó đến cuối tập tin thành một nhãn có tên hoàn thành.

nếu không "%1"=="" hãy biên dịch

rem Nếu tham số trống, chúng tôi hiển thị thông báo lỗi

echo Tên dự án tệp trợ giúp không được chỉ định

rem và đi đến cuối tập tin batch

rem để hoàn thành điểm

rem Đây là nhãn có tên là biên dịch

rem Dưới đây là các lệnh biên dịch

rem Đường dẫn tới trình biên dịch tập tin trợ giúp

đặt help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Đường dẫn đến thư mục chứa các dự án tệp trợ giúp

đặt project_path=e:\work\projects\help-projects

rem Gọi trình biên dịch để xử lý một dự án cụ thể,

rem có tên được truyền vào tham số đầu tiên

%help_compiler% %project_path%\%1.hpj

rem Đây là nhãn có tên là kết thúc

Hãy đối mặt với nó, phương pháp kiểm tra tham số được đề xuất không phải là phương pháp thành công nhất.

Đầu tiên, nếu người dùng chỉ định nhầm tên của một tệp không tồn tại làm tham số, tệp bó sẽ hài lòng với điều này và cố gắng biên dịch. Một cách chính xác hơn là kiểm tra xem một tập tin như vậy có thực sự tồn tại hay không. Với mục đích này, ngôn ngữ lệnh MS-DOS cung cấp một từ đặc biệt hiện hữu. Vì vậy sẽ tốt hơn nếu viết: nếu tồn tại %1.hpj hãy biên dịch.

Thứ hai, sử dụng tích cực lệnh đi đến(cái gọi là bước nhảy vô điều kiện) và các nhãn khiến mã rất khó hiểu. Về mặt kỹ thuật, chúng không tệ, nhưng việc gỡ lỗi và duy trì một tệp bó được viết theo phong cách này khá bất tiện. Vì vậy, các lập trình viên từ lâu đã coi việc nhảy vô điều kiện là một kỹ thuật không mong muốn. Dưới đây được trình bày chính xác hơn, từ quan điểm của phong cách lập trình, phiên bản có cấu trúc, sử dụng cấu trúc nếu khác. Nó hoạt động như thế này: nếu điều kiện đúng, các lệnh trong ngoặc đơn sau nếu như, và nếu sai thì trong ngoặc đơn sau khác.

rem Kiểm tra xem tham số đã được đặt chưa

nếu không tồn tại %1.hpj (

rem Đường dẫn tới trình biên dịch tập tin trợ giúp

đặt help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Đường dẫn đến thư mục chứa các dự án tệp trợ giúp

đặt project_path=e:\work\projects\help-projects

rem Gọi trình biên dịch để xử lý một dự án cụ thể,

%help_compiler% %project_path%\%1.hpj

Hãy đưa ra một ví dụ khác về cách làm việc với séc. Tệp bó sau đây tạo một thư mục có tên tập tin trợ giúp(giả sử tải các tệp trợ giúp đã biên dịch lên đó). Hơn nữa, nếu một thư mục có cùng tên đã tồn tại (và nó có thể chứa các tệp trợ giúp cũ mà bạn không muốn mất: điều gì sẽ xảy ra nếu các tệp mới trở nên tệ hơn?), tệp bó sẽ gán phần mở rộng bak cho nó . Nhưng nếu thư mục help-files.bakđã tồn tại thì tệp bó sẽ xóa nó (chúng tôi sẽ cho rằng một bản sao lưu là đủ cho chúng tôi).

nếu tồn tại help-files.bak rd help-files.bak

nếu tồn tại tệp trợ giúp ren tệp trợ giúp help-files.bak

Xử lý tập tin hàng loạt. cho lệnh

Lệnh for cho phép bạn tổ chức thực hiện các hành động lặp lại cùng loại. Bạn có thể sử dụng nó để hiển thị các số từ một đến mười, như trong danh sách sau.

for /l %%i in (1,1,10) thực hiện echo %%i

Biến đổi Tôiđược gọi là bộ đếm vòng lặp. Do cú pháp độc đáo của lệnh , tên của bộ đếm vòng lặp phải bao gồm một chữ cái. Hơn nữa, nếu chúng ta đang viết một tệp bó, thì chúng ta cần đặt một dấu phần trăm kép trước tên của bộ đếm vòng lặp, nhưng nếu chúng ta chỉ gõ một lệnh trên dòng lệnh thì một lệnh duy nhất.

Logic của lệnh này như sau. Sau lời nói TRONG phạm vi thay đổi của bộ đếm chu kỳ được chỉ định. Trong phiên bản lệnh này, đây là bộ ba số: giá trị ban đầu của bộ đếm, bước đếm, giá trị giới hạn của bộ đếm. Khi thực thi một lệnh, đầu tiên shell sẽ gán biến Tôi nghĩa 1 , và sau đó ở mỗi bước của vòng lặp, nó sẽ tăng thêm 1 cho đến khi vượt quá 10 . Hiển nhiên sẽ có mười bước như vậy. Nếu chúng tôi chỉ định một số làm bước đếm 2 , thì vòng lặp sẽ được thực hiện năm lần. Ở mỗi bước của vòng lặp, phần thân của vòng lặp được viết sau từ được thực thi LÀM. Trong ví dụ trên, đây là lệnh echo, hiển thị giá trị hiện tại của bộ đếm vòng lặp.

Bạn có thể nghĩ đến một tình huống thực sự cần một thứ như thế này, nhưng thông thường lệnh được sử dụng để lặp lại và xử lý các tập tin. Phải nói rằng trong những trường hợp khá đơn giản, việc xử lý tệp hàng loạt được thực hiện bằng ký tự đại diện. Nếu chúng ta muốn thay thế tất cả các tệp trong thư mục hiện tại bằng phần mở rộng .htm TRÊN .html, chúng ta nhập lệnh ren *.htm *.html. Nhưng nếu điều tương tự cần được thực hiện không phải trong một thư mục mà trong cây thư mục, thì bạn không thể thực hiện nếu không có lệnh for. Tệp bó sau đây thực hiện thao tác này cho tất cả các tệp htm trong thư mục con trang web của thư mục hiện tại. Chính xác hơn, trong toàn bộ cây thư mục bên trong trang mạng.

for /r website %%i in (*.htm) do ren %%i %%~ni.html

Chìa khóa /r cho biết sự cần thiết phải duyệt qua thư mục trang mạng và tất cả những gì bên trong nó. Nếu bạn không chỉ định nó (nhưng sau đó bạn không được phép chỉ định thư mục), thì chỉ các tệp trong thư mục hiện tại mới được xử lý. Phạm vi giá trị của bộ đếm vòng lặp trong biến thể lệnh này là tập hợp tất cả các tệp có phần mở rộng .htm, nằm bên trong một thư mục (chính xác hơn là một cái cây) trang mạng. Một mục lạ thoạt nhìn ~ni có nghĩa là từ giá trị của biến Tôi Bạn chỉ cần chọn tên tập tin. Ngôn ngữ lệnh MS-DOS cung cấp một số công cụ sửa đổi như vậy, ví dụ như viết ~xi biểu thị phần mở rộng của tập tin. Tất cả các sửa đổi được mô tả trong trợ giúp lệnh .

Phần thân của vòng lặp có thể bao gồm một số lệnh được đặt trong dấu ngoặc đơn.

cho /r trang web %%i trong (*.htm) làm (

rem In tên tập tin

rem Đổi tên tập tin

ren %%i %%~ni.html

Chuyển điều khiển sang tập tin batch khác. lệnh gọi

Có thể gọi một tệp bó khác từ một tệp bó. Lệnh cho việc này là gọi. Tuyệt vời, các biến được chỉ định trong tệp bó lệnh gọi đều “hiển thị” đối với biến được gọi. Và ngược lại, sau khi tệp được gọi hoàn thành công việc của nó và trả lại quyền điều khiển cho người gọi, người sau sẽ “nhìn thấy” các biến mà cái gọi là “kế thừa” để lại cho nó. Điều này cho phép nhà phát triển tệp bó thực hiện một số việc như thế này: Nếu một số tệp lệnh phải sử dụng cùng một giá trị, chẳng hạn như đường dẫn đến một số tệp, thì chúng có thể được đặt trong một tệp lệnh riêng, tệp này sẽ đóng vai trò của tệp cấu hình. Mỗi tệp lệnh làm việc sẽ bắt đầu bằng lệnh gọi tệp cấu hình. Lợi ích là khi thay đổi đường dẫn, bạn chỉ phải thực hiện các thay đổi đối với một tệp cấu hình chứ không phải thay đổi nhiều công nhân.

Tệp bó "Cấu hình" cấu hình.bat.

rem Đường dẫn tới trình biên dịch tập tin trợ giúp

đặt help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Đường dẫn đến thư mục chứa các dự án tệp trợ giúp

đặt project_path=e:\work\projects\help-projects

Tệp bó "Đang làm việc".

rem Thiết lập biến

rem Kiểm tra xem tham số đã được đặt chưa

nếu không tồn tại %1.hpj (

rem Nếu tham số trống, chúng tôi hiển thị thông báo lỗi

echo Dự án tập tin trợ giúp này không tồn tại.

rem Dưới đây là các lệnh biên dịch

rem Gọi trình biên dịch để xử lý một dự án cụ thể,

rem có tên được truyền vào tham số đầu tiên

%help_compiler% %project_path%\%1.hpj

Bộ Giáo dục Liên bang Nga

LÀM VIỆC VỚI TỆP BATCH

TRONG MÔI TRƯỜNGCÁC CỬA SỔ

Khóa học "Hệ điều hành"

dành cho sinh viên chuyên ngành 220200

giáo dục toàn thời gian

Tán thành

Hội đồng biên tập và xuất bản

Bang Saratov

Đại học kỹ thuật

Saratov 2010

LÀM VIỆC VỚI TỆP BATCH

TRONG MÔI TRƯỜNG CỬA SỔ

Hướng dẫn công việc trong phòng thí nghiệm

Khóa học "Hệ điều hành"

Người đánh giá A.F. Rezchikov

Biên tập viên O.A. Panina

Giấy phép CMND số 06268 ngày 14/11/01

Đã ký in 10.27.10 Định dạng 60x84 1/16

Đại học Kỹ thuật bang Saratov

410054 Saratov, st. Politekhnicheskaya, 77

Giới thiệu

Hướng dẫn thảo luận về cấu trúc của tệp bó, phương pháp tạo các tệp này và phương pháp tự động hóa việc thực hiện một số thao tác.

Hướng dẫn bao gồm mô tả về trình thông dịch lệnh, cấu trúc của tệp bó, mô tả các chức năng được sử dụng trong tệp bó, ví dụ về giải pháp cho vấn đề giáo dục, nhiệm vụ thực hiện công việc trong phòng thí nghiệm, yêu cầu chuẩn bị báo cáo về công việc trong phòng thí nghiệm , cũng như danh sách tài liệu cần thiết để hoàn thành công việc thí nghiệm này.

Các hướng dẫn này dành cho sinh viên chuyên ngành 220200 và cũng có thể được sử dụng bởi sinh viên các chuyên ngành khác liên quan đến việc phát triển các chương trình hệ thống.

Mục đích công việc: tạo các tệp bó, tự động hóa việc thực hiện một số tác vụ khi cài đặt và tải Windows, tối ưu hóa và tăng độ tin cậy của hệ thống.

Trình thông dịch lệnh và tập tin hàng loạt

Tập tin hàng loạt lô hàng tài liệu) - một tệp văn bản trong MS-DOS, OS/2 hoặc Windows chứa một chuỗi các lệnh dành cho trình thông dịch lệnh thực thi. Sau khi chạy một tệp bó, một chương trình thông dịch (thường là COMMAND.COM hoặc CMD.EXE) sẽ đọc tệp đó từng dòng một và thực hiện các lệnh một cách tuần tự.

Windows sử dụng hai trình thông dịch lệnh, commad.com và cmd.exe, có thể được khởi chạy thông qua menu Bắt đầu (Start->Run->cmd ->OK hoặc Start->Run->commad ->OK). Trong bộ lễ phục. 1 cho thấy khả năng sử dụng trợ giúp cho các lệnh DOS/Windows. Trợ giúp có sẵn bằng cách gõ trợ giúp tại dòng lệnh.

Hình 1 Trình thông dịch lệnh commad.com

Trong bộ lễ phục. Hình 2 cho thấy khả năng tạo một file mới bằng lệnh copy con file_name.extension.

R
là.2. Trình thông dịch lệnh cmd.exe

Sử dụng các tệp bó (*.cmd hoặc *.bat) giúp tự động hóa một số tác vụ khi cài đặt và khởi động Windows. Trong trường hợp này, không cần sự can thiệp của người dùng. Các tập tin này có thể được tạo từ cmdlines.txt, svcpack.inf, RunOnceEx một phần trong sổ đăng ký hoặc từ một phần trong tệp winnt.sif.

Các tệp hàng loạt hỗ trợ tất cả các lệnh có thể được thực thi từ dòng lệnh. Để xem dòng lệnh, chỉ cần làm như sau: Start->Run->cmd->OK

Hãy xem xét một tập tin thực thi đơn giản. Để thực hiện việc này, hãy mở Notepad và nhập văn bản sau vào đó:

TITLE Kiểm tra tệp hàng loạt

ECHO Xin chào thế giới

ECHO Bắt đầu Notepad

BẮT ĐẦU sổ ghi chú

ECHO. Bàn phím khởi động ECHO

BẮT ĐẦU Bàn phím từ

tiếng vang.

LỐI RA

Sau đó, bạn cần lưu tệp với bất kỳ tên nào và ở bất kỳ vị trí nào, nhưng với phần mở rộng *.cmd (chứ không phải .txt, Notepad sẽ gán theo mặc định). Khi bạn chạy tệp này, nó sẽ đặt tên cho cửa sổ là "Kiểm tra tệp hàng loạt", khởi chạy Notepad và WordPad, yêu cầu bạn nhấn phím bất kỳ để tiếp tục và đóng cửa sổ.

Bảng 1

Ý nghĩa của các lệnh được sử dụng trong tệp bó

@echo tắt

Ẩn dòng C:\> và tất cả các lệnh được sử dụng trong tệp bó

Tạo khoảng cách giữa các dòng

tin nhắn vang vọng

Hiển thị thông báo trong cửa sổ chỉ nhằm mục đích cung cấp thông tin

Tiêu đề cửa sổ

Bắt đầu một ứng dụng hoặc quá trình cài đặt

Hiển thị thông báo "Nhấn phím bất kỳ để tiếp tục..."

Đóng dòng lệnh

Khi thêm một ứng dụng để cài đặt tự động từ đĩa cài đặt XP, các lệnh sẽ như sau:

bắt đầu /đợi %systemdrive%\install\some_application\setup.exe /chìa khóa / hơn chìa khóa,

start sẽ bắt đầu cài đặt ứng dụng và /wait sẽ đợi cho đến khi quá trình cài đặt hoàn tất trước khi cài đặt ứng dụng tiếp theo. Việc sử dụng /wait là rất quan trọng bởi vì... nếu không, quá trình cài đặt nhiều ứng dụng sẽ bắt đầu đồng thời và xung đột là không thể tránh khỏi.

Các tập tin hàng loạt có thể được khởi chạy từ cmdlines.txt hoặc svcpack.inf, sẽ được thực thi ở giai đoạn T-13/T-12 trong quá trình cài đặt Windows (T-13 có nghĩa là 13 phút trước khi quá trình cài đặt hoàn tất). cmdlines.txt hữu ích cho các tác vụ như Thêm người dùng hoặc để nhập các khóa đăng ký được chuẩn bị trước HKEY_CURRENT_USER vào Cấu hình mặc định.

Phương pháp svcpack.inf thường được sử dụng để cài đặt các bản cập nhật (hotfix). Tuy nhiên, không có gì ngăn cản bạn coi tệp bó chỉ là một hotfix khác.

Ví dụ nội dung tệp bó:

@echo tắt

TITLE Windows XP SP2 - Cài đặt không cần giám sát

ECHO Trong vài phút tới, bạn sẽ thấy các cài đặt tự động

ECHO của các ứng dụng phần mềm khác nhau và các chỉnh sửa sổ đăng ký đang được thực hiện

ECHO được triển khai.

ECHO Xóa hình nền và trình bảo vệ màn hình...

DEL "%systemroot%\*.bmp"

DEL "%systemroot%\Web\Hình nền\*.jpg"

DEL "%systemroot%\system32\dllcache\*.scr"

DEL "%systemroot%\system32\*.scr"

ECHO Loại bỏ các phím tắt vô dụng...

Cập nhật.lnk"

DEL "%systemdrive%\Documents and Setting\All Users\Start Menu\Set

Truy cập chương trình và mặc định.lnk"

DEL "%systemdrive%\Documents and Setting\All Users\Start Menu\Windows

Danh mục.lnk"

ECHO Cài đặt Powertoy TweakUI 2.10

ECHO Xin vui lòng chờ...

bắt đầu/đợi %systemdrive%\Install\TweakUI.msi /qn

ECHO Đang áp dụng các tinh chỉnh sổ đăng ký...

REGEDIT /S %systemdrive%\Install\RegTweaks.reg

ECHO Xóa tài khoản người dùng ASP.NET được tạo bởi .NET Framework 1.1...

người dùng mạng aspnet/xóa

Tệp bó này xóa hình nền và trình bảo vệ màn hình được hệ thống cài đặt theo mặc định, cũng như một số phím tắt. Sau đó, nó cài đặt TweakUI, nhập khóa đăng ký và xóa tài khoản ASP.NET được tạo khi cài đặt .NET Framework.

Gọi các tập lệnh bên ngoài:

1. Sau khi tệp được gọi được thực thi, quyền điều khiển sẽ không được chuyển sang tệp đang gọi.

@ tiếng vang TẮT

R.E.M.Danh sách đầu ranhật ký-các tập tin

TRỰC TIẾP C:\*. nhật ký

R.E.M.Chuyển việc thực thi sang một tập tinf. con dơi

SAO CHÉP A:\*.* C:\

2. Sau khi tệp được gọi được thực thi, điều khiển sẽ được chuyển sang tệp đang gọi:

@ECHO TẮT

R.E.M.Danh sách đầu ranhật ký-các tập tin

TRỰC TIẾP C:\*.log

R.E.M.Chuyển việc thực thi sang một tập tinf. con dơi

GỌI f.bat

SAO CHÉP A:\*.* C:\

Tài liệucmdlines.txt bạn cần đặt nó vào thư mục $OEM$ và Windows sẽ tự động tìm thấy nó trong quá trình cài đặt. Tất cả các tệp bó được khởi chạy từ cmdlines.txt, phải nằm trong cùng thư mục với cmdlines.txt.

Tài liệusvcpack.infđược lưu trong thư mục I386 trên đĩa cài đặt (bạn phải xóa nó khỏi đó svcpack.in_). Tất cả các tệp bó được khởi chạy từ svcpack.inf, phải được đặt trong thư mục I386\svcpack, trừ khi có quy định khác trong chính tệp đó.

Các tệp hàng loạt sử dụng rộng rãi các lệnh truyền điều khiển IF, FOR, SHIFT, cũng như các tham số được truyền từ dòng lệnh và các toán tử chuyển hướng I/O >, >>,<, |. Полезными оказываются операторы: «+» ‑ слияния файлов, «?» ‑ замены одного символа в имени файла или расширении, «*» ‑ замены нескольких символов в имени файла или расширении.

Tên hệ thống là: CON, NULL, UX, COM1, COM2, PRN, LPT1, LPT2. Chúng không thể được gọi là tập tin.

Mặc dù thực tế là người dùng máy tính hiện nay có thể dễ dàng thực hiện mà không cần kiến ​​thức DOS, đặc biệt là vì trong hệ điều hành mới DOS có vẻ như nó sẽ hoàn toàn vắng mặt, kiến ​​thức của họ có thể hữu ích trong những tình huống khẩn cấp khi Windows vì lý do nào đó không muốn khởi động và chỉ có dòng lệnh. Có thể nhận được trợ giúp về các lệnh bằng cách chạy lệnh trợ giúp.

Nhiệm vụ

1. Tạo hai thư mục. Điền vào một trong số chúng một số tệp có phần mở rộng khác nhau. Sử dụng từ khóa for, viết một tệp bat chuyển tất cả các tệp có phần mở rộng được chỉ định làm tham số từ thư mục này sang thư mục khác. Hành động bình luận bằng cách sử dụng rem

2. Tạo một thư mục. Điền vào nó một số tệp với hai loại tiện ích mở rộng. Sử dụng từ khóa for, viết một tệp bat sao chép tất cả các tệp thuộc một loại từ một thư mục nhất định sang một tệp và tệp thứ hai sang tệp khác.

3. Tạo một thư mục. Điền vào nó bằng một số tệp có phần mở rộng khác nhau. Sử dụng từ khóa for, viết một tệp bat để xóa tất cả các tệp có phần mở rộng .txt.

4. Tạo một tệp bó thực hiện ủy quyền người dùng, hiển thị ngày và giờ hệ thống trên màn hình, xác định tên của thư mục chứa tệp bó sẽ được khởi chạy, tạo một tệp mới trong thư mục này và chuyển hướng đầu ra tiêu chuẩn đến tập tin này, tức là tạo một tệp nhật ký.

6. Tạo một batch file thực hiện phân quyền người dùng, hiển thị ngày giờ hệ thống trên màn hình, tạo một thư mục có tên trùng với ngày hiện tại, trong thư mục này tạo một file có tên tùy ý (do người dùng xác định), số đầu ra từ 1 đến 10.

    Nghiên cứu cấu trúc của tập tin batch.

    Thực hiện các ví dụ được mô tả trong hướng dẫn.

    Nhận một bài tập từ giáo viên của bạn và hoàn thành nó.

    Chuẩn bị một báo cáo.

Yêu cầu báo cáo

    Trang tiêu đề.

    Mục đích công việc và nhiệm vụ thực hiện công việc.

    Kiểm tra tập tin hàng loạt.

    Ảnh chụp màn hình thực thi tập tin hàng loạt.

    Kết luận về tác phẩm.

Câu hỏi tự kiểm tra

    Định nghĩa tập tin hàng loạt.

    Mục đích của các tập tin hàng loạt.

    Tạo một tập tin bat.

    Các lệnh cơ bản.

Danh sách các nguồn được sử dụng

    [Tài nguyên điện tử]: Phát triển các tập tin batch. – http://www.oszone.net/2245

Những người quen thuộc với thuật ngữ tệp bó đều biết rằng tệp BAT có thể đơn giản hóa đáng kể cuộc sống và tiết kiệm thời gian nếu bạn biết cách viết và sử dụng chúng một cách chính xác. Trong bài viết này, tôi sẽ nói về cách tạo tệp BAT và giới thiệu cho bạn những lỗi phổ biến thường xảy ra khi viết chúng.

Tạo một tập tin BAT rất đơn giản. Chỉ cần mở Notepad và lưu một trang tính trống có phần mở rộng .bat, chọn tùy chọn Lưu dưới dạng... và viết vào trường Tên tệp một cái gì đó kết thúc bằng .bat, ví dụ test.bat.
Chỉ định loại tệp như trong ảnh chụp màn hình bên dưới - Tất cả các tệp. Lưu và nhận tệp BAT.

Bạn có thể chỉnh sửa tệp BAT trong Notepad hoặc bất kỳ trình soạn thảo văn bản nào khác tập trung vào làm việc với mã.

Bây giờ hãy chuyển trực tiếp đến thông tin thực tế. Nhiều người trên Internet đang tìm kiếm câu trả lời cho câu hỏi: Làm cách nào để xử lý khoảng trắng trong tệp BAT? . Trong đường dẫn đến thư mục và tệp thực thi, sự hiện diện của khoảng trắng sẽ gây ra lỗi. Câu trả lời phổ biến nhất là: Đặt đường dẫn trong dấu ngoặc kép. Và câu trả lời này không chính xác. Đúng vậy, một số người sẽ sùi bọt mép và cho rằng nó có tác dụng. Vì vậy, có hai lý do tại sao xuất hiện - tại sao nó không đúng và tại sao một số lại như vậy.

Trên Windows (cũng như trên UNIX), các chương trình được cài đặt trên hệ thống đều được hệ thống đăng ký tương ứng. Do đó, một số chương trình đã cài đặt có thể được khởi chạy bằng một lệnh đơn giản từ tệp BAT hoặc từ ứng dụng Run của bảng Bắt đầu. Một chương trình như vậy là Firefox:

khởi động firefox

Nếu sau lệnh này, bạn ghi đường dẫn đến tệp thi hành, thì điều sau sẽ xảy ra: trình duyệt Firefox khởi động và cố gắng xử lý yêu cầu, tức là tệp có đường dẫn được chỉ định. Tức là, nếu bạn chỉ định những điều sau:

khởi động firefox C:\Program Files\Mozilla Firefox\firefox.exe

Trình duyệt sẽ mở ra, bất kể nó nói gì sau khi khởi động firefox. Đó là lý do tại sao một số đồng chí sẽ đảm bảo rằng mọi thứ đều hoạt động tốt. Tuy nhiên, nếu bạn dùng một chương trình di động thì tình hình sẽ hoàn toàn khác. Hãy lấy ứng dụng khách Filezilla ftp làm ví dụ. Do hệ thống không biết về chương trình nên dòng trên

bắt đầu filezilla

sẽ không hoạt động. Để chạy một chương trình mà hệ thống không xác định, bạn cần chỉ định đường dẫn đến chương trình đó:

bắt đầu D:\FileZilla\FileZilla.exe

Tên dài trong tập tin bat

Bây giờ hãy nói về đường dẫn và không gian. Cách đầu tiên để tránh vấn đề này là sử dụng tên ngắn.

bắt đầu C:\Program Files\Sound Club\scw.exe

Trong ví dụ có hai tên có dấu cách. Hãy thay thế chúng bằng những cái ngắn. Quy tắc tạo tên ngắn như sau: tên ngắn sử dụng sáu ký tự đầu tiên của tên, không bao gồm dấu cách, sau tên là số sê-ri của thư mục được biểu thị bằng ký hiệu ~ . Vì các thư mục Tệp chương trình và Câu lạc bộ âm thanh của tôi là số ít nên nó sẽ trông như thế này:

Tệp chương trình - Progra~1 Sound Club - SoundC~1 start C:\Progra~1 \SoundC~1 \scw.exe

Nếu có hai thư mục ở gần nhau, chẳng hạn như Sound Club và Sound Clown, thì hãy làm theo quy tắc, trong ví dụ trên, bạn sẽ cần chỉ định SoundC~2, vì trong trường hợp này Sound Club sẽ là tên thứ hai (tên được tính theo thứ tự bảng chữ cái). đặt hàng).

Nhưng phương pháp này bất tiện vì bạn phải chỉ ra số sê-ri. Tình trạng với các tệp Chương trình ít nhiều là bình thường. Rất ít người sẽ tìm thấy hai thư mục giống nhau trên ổ đĩa hệ thống. Nhưng nếu bạn quyết định cài đặt nhiều sản phẩm Mozilla trên máy tính của mình. Bạn sẽ kết thúc với một số thư mục, ví dụ:

Mozilla Firefox Mozilla Thunderbird Mozilla Sunbird

Tên viết tắt của chúng sẽ là

Mozill~1 Mozill~2 Mozill~3

Bây giờ hãy tưởng tượng rằng bạn đã viết một tệp BAT đề cập đến các chương trình này. Nếu bạn gỡ cài đặt Firefox, các mục còn lại sẽ không hoạt động nữa và nếu bạn gỡ cài đặt Thunderbird, mục nhập dành cho Sunbird sẽ không còn hoạt động. Tóm lại, phương pháp với tên viết tắt không phải là cách của chúng tôi.

Dấu cách và dấu ngoặc kép trong tệp bat

Những câu trích dẫn thực sự có tác dụng nhưng không theo cách thường được khuyên dùng. Những điều sau đây thường được khuyến nghị:

bắt đầu "C:\Program Files\Sound Club\scw.exe"

Vì vậy lệnh sẽ không hoạt động, vì nếu bạn nhìn vào phần trợ giúp cho nó (start /? ), thì trong phần trợ giúp bạn sẽ thấy như sau:

BẮT ĐẦU ["tiêu đề"] [lệnh/chương trình] [tham số]

Như bạn có thể thấy, tham số đầu tiên là tiêu đề cửa sổ và nó nằm trong dấu ngoặc kép. Tham số này là tùy chọn nhưng vẫn nên chỉ định nó() để tránh lỗi khi thực thi lệnh. Bạn không cần phải viết bất cứ điều gì bên trong dấu ngoặc kép. Nó sẽ diễn ra như thế này:

bắt đầu "" "C:\Program Files\Sound Club\scw.exe"

Tùy chọn đặt tất cả các tên có dấu cách riêng biệt trong dấu ngoặc kép cũng sẽ hoạt động:

bắt đầu C:\"Tệp chương trình"\"Câu lạc bộ âm thanh"\scw.exe

Tuy nhiên, trong một số trường hợp, không cách nào ở trên có tác dụng. Trong những trường hợp như vậy, tôi có thể khuyên bạn nên sử dụng lệnh cd. Đi tới phân vùng hệ thống, sau đó dùng cd vào thư mục Program Files và chạy chương trình (bắt đầu):

%SystemDrive% cd \Program Files\Sound Club\ start scw.exe

Tôi nghĩ phương pháp này sẽ hiệu quả ở mọi nơi. Bây giờ có một vài điểm quan trọng hơn. Giả sử bạn đã tạo một tệp bó khởi chạy ba chương trình và bạn cần tạm thời loại trừ việc khởi chạy một trong ba chương trình. Điều này có thể được thực hiện bằng cách xóa dòng hoặc bình luận nó. Phương pháp đầu tiên là phá hoại, và phương pháp thứ hai, xem bên dưới.

khởi động firefox khởi động jetaudio rem khởi động chương trình chống phân mảnh

Trong trường hợp này, việc khởi chạy chương trình Defraggler.exe được cài đặt trên hệ thống bị vô hiệu hóa. Dòng chú thích bằng cách chỉ định lệnh rem ở đầu dòng. Tất cả các tệp BAT được thực thi trong cửa sổ bảng điều khiển. Để nó biến mất khi thực hiện xong các lệnh, đừng quên viết lệnh thoát ở cuối.

bắt đầu firefox bắt đầu jetaudio rem bắt đầu chống phân mảnh thoát

Khởi chạy ứng dụng từ tập tin bat

Trong phần đầu của bài viết, tôi đã nói một cách khái quát về file BAT. Bây giờ nó đã trở nên rõ ràng nó là gì và nó được ăn với cái gì. Trong phần thứ hai chúng ta sẽ nói về những điều cụ thể hơn. Ví dụ: cách sử dụng tệp BAT để khởi chạy một số ứng dụng với các cài đặt nhất định hoặc tự động cài đặt chương trình để không lãng phí thời gian cho các câu trả lời như Bạn có đồng ý với các điều khoản của thỏa thuận cấp phép không? và không nhấn các nút không cần thiết.

Một số cách để khởi chạy ứng dụng bằng tệp BAT đã được nêu ở trên. Đầu tiên là một lệnh ngắn để khởi chạy chương trình được cài đặt trên hệ thống.

khởi động firefox

Điều này không phải lúc nào cũng hiệu quả. Do đó, kỹ thuật này có thể được áp dụng đầy đủ cho một hệ thống cụ thể, nhưng nó không phù hợp như một giải pháp phổ quát. Nếu mục tiêu của bạn là làm cho tệp BAT hoạt động ở mọi nơi và mọi lúc, bạn cần sử dụng đường dẫn đầy đủ:

bắt đầu C:\"Tệp chương trình"\"Mozilla Firefox"\firefox.exe

Tôi cũng lưu ý rằng tệp BAT phải chứa lệnh để hoàn thành:

bắt đầu C:\"Tệp chương trình"\"Mozilla Firefox"\firefox.exe thoát

Chạy chương trình trong file bat có tham số (phím)

Bạn không chỉ có thể chạy chương trình mà còn có thể cung cấp cho nó các lệnh bổ sung khi khởi động nó. Ví dụ: lệnh chạy thu nhỏ:

bắt đầu / phút D:\FileZilla\FileZilla.exe thoát

Ra lệnh trong trường hợp này có nghĩa là chỉ ra chìa khóa. Phím được biểu thị bằng dấu gạch chéo sau lệnh chính (lệnh/phím). Lệnh chính trong trường hợp này là bắt đầu. Đúng, khóa min chỉ hoạt động trong một nửa trường hợp, vì nó liên quan cụ thể đến lệnh bắt đầu chứ không liên quan đến các chương trình mà lệnh này khởi chạy.

Nhìn chung, có rất nhiều phím và bộ phím dành cho các chương trình khác nhau có thể khác nhau đáng kể. Tuy nhiên, có một vài cái phổ biến. Ví dụ: phím trợ giúp (/? hoặc /help). Để xem phím này hoạt động như thế nào, chúng ta hãy xem một ví dụ thực tế. Mở bảng điều khiển (Click + R , nhập cmd , sau đó Enter ) và nhập thông tin sau vào bảng điều khiển:

bắt đầu /?

Bảng điều khiển sẽ hiển thị danh sách các khóa hợp lệ kèm theo nhận xét cho lệnh bắt đầu.

Hãy chú ý đến nút chuyển đổi /wait. Trong một số trường hợp, nó đơn giản là không thể thay thế được. Ví dụ: bạn quyết định sử dụng tệp BAT để giải nén tệp lưu trữ bằng chương trình và chạy chính chương trình này. Tệp bó sẽ chứa hai lệnh - để giải nén và khởi chạy. Vì các lệnh sẽ được thực thi gần như đồng thời khi chạy tệp BAT nên kho lưu trữ sẽ không có thời gian để giải nén và sẽ không có gì để chạy. Vì vậy sẽ có sai sót. Trong trường hợp này, chìa khóa sẽ đến giải cứu /Chờ đợi:

Do đó, trước tiên hệ thống sẽ thực hiện hành động đầu tiên, đợi nó hoàn thành và chỉ sau đó mới tiến hành hành động thứ hai. Nếu bạn cần đợi một khoảng thời gian cụ thể, việc sử dụng tiện ích bảng điều khiển sẽ dễ dàng hơn. Ở đúng vị trí trong file BAT, viết lệnh sau (số là số giây):

khởi động Sleep.exe 15

Bạn có thể làm được rất nhiều việc với chìa khóa. Có thể cài đặt ứng dụng. Để thực hiện việc này, một số phím được sử dụng tùy thuộc vào loại trình cài đặt được sử dụng để cài đặt chương trình trên máy tính:

/S /s /q /silent và một số khác

Trong một số trường hợp nó có thể rất thuận tiện. Phần mềm diệt virus Avast có tùy chọn cài đặt im lặng trong phiên bản công ty. Phiên bản miễn phí (tại nhà) được cho là không có cài đặt im lặng. Tuy nhiên, nếu bạn biết trình cài đặt InstallShield hoạt động như thế nào, bạn sẽ hiểu rằng đây là một canard, vì bản thân trình cài đặt này hỗ trợ nút chuyển cài đặt im lặng /S. Điều này có nghĩa là tất cả các sản phẩm được sản xuất trên cơ sở của nó đều làm như vậy. Và Avast cũng không ngoại lệ. Chỉ cần tạo một tệp có nội dung trong thư mục bằng BAT của Avast

khởi động avast.exe /S thoát

bạn khởi chạy nó và chương trình được cài đặt trên máy tính của bạn mà hầu như không có sự can thiệp nào từ bạn. Bằng cách này, bạn có thể viết toàn bộ danh sách các chương trình để cài đặt im lặng và tiết kiệm thời gian, chẳng hạn như cài đặt lại hệ thống. Trong bài viết, bạn có thể nhận được thông tin chi tiết hơn về các phím.

Có các tùy chọn khác để quản lý chương trình bằng tệp BAT. Bạn có thể khởi động một chương trình bằng cách yêu cầu nó mở một tập tin khi khởi động. Tôi sử dụng phương pháp này khi phát triển trang web. Rất thuận tiện khi toàn bộ bộ công cụ của bạn mở các tài liệu và thư mục cần thiết chỉ bằng một nút bấm:

kết nối rem với máy chủ ftp bắt đầu /min D:\FileZilla\FileZilla.exe "ftp://login:password@server" rem mở file index.php trong Firefox bắt đầu C:\"tệp chương trình"\"mozilla firefox"\firefox.exe "http://localhost/site_folder/index.php" rem mở start.html trong trình soạn thảo văn bản bắt đầu / phút C:\"Tệp chương trình"\text_editor.exe "E:\server\site_folder\index.html" rem mở thư mục chứa các tập tin trang web bắt đầu / phút E:\server\site_folder lối ra bảng điều khiển rem lối ra

Tôi lưu ý rằng tất cả các kỹ thuật được mô tả ở trên có thể được sử dụng theo nhiều cách kết hợp và kết hợp khác nhau.

bắt đầu /min /wait chương trình.exe /m /S bắt đầu C:\Directory\program2.exe "C:\Files\file.odt" thoát

Nhưng điều quan trọng cần nhớ: mọi thứ liên quan đến việc thực thi chương trình được khởi chạy trong tệp bó đều được ghi cùng với nó trên cùng một dòng.

bắt đầu C:\"tệp chương trình"\"mozilla firefox"\firefox.exe "http://localhost/site_folder/index.php"

Ở phần kết, tôi sẽ cung cấp cho bạn đánh giá về trình chuyển đổi tệp BAT thành các ứng dụng ở định dạng .exe - . Tệp BAT không phải lúc nào cũng có tính thẩm mỹ, nhưng với sự trợ giúp của trình chuyển đổi, bạn có thể đóng gói tệp bó thành tệp exe, trang trí tệp bằng bất kỳ biểu tượng nào bạn chọn.

Tôi đã tìm thấy một công cụ chuyển đổi BAT sang EXE khác, bạn có thể coi nó như một giải pháp thay thế cho chương trình trước đó: Advanced Bat To Exe Converter

Nhiều người viết kỹ thuật đôi khi có nhu cầu tự động hóa việc xử lý tệp. Đôi khi chúng ta đang nói về việc xử lý một lần một số lượng lớn tệp, đôi khi chúng ta đang nói về việc thực hiện các hành động tương tự một cách có hệ thống, chẳng hạn như khi sử dụng công nghệ DocBook hoặc DITA). Việc xử lý từng file bằng lệnh thủ công riêng biệt không chỉ tốn thời gian mà còn dẫn đến những lỗi khó nhận biết phát sinh do sự thiếu chú ý tự nhiên của người vận hành.

Trong hệ điều hành MS-DOS và trong tất cả các hệ điều hành thuộc họ Microsoft Windows, phương tiện đơn giản nhất để tự động hóa quá trình xử lý tệp (và thư mục) được gọi là tệp bó. Hãy nói ngay rằng các tệp bó không phải là phương tiện duy nhất để tự động hóa công việc của người dùng, ngay cả trong số các tệp được tích hợp sẵn. Trong các hệ điều hành thuộc họ Microsoft Windows, bắt đầu từ phiên bản 98, cũng có Máy chủ Windows Script(ing). Ngoài ra, không ai cấm chúng tôi sử dụng một số ngôn ngữ thông dịch cho những mục đích này, chẳng hạn như Perl, Python hoặc Ruby. Tuy nhiên, các công cụ được liệt kê, mặc dù mạnh mẽ nhưng lại yêu cầu kỹ năng lập trình, tức là. soạn thảo và quan trọng là gỡ lỗi các chương trình, ít nhất là ở mức độ nghiệp dư tốt. Bất kỳ ai cũng có thể sử dụng các tệp bó mà không cần đào tạo đặc biệt;

Lưu ý quan trọng. Một cuốn sách tham khảo đầy đủ hoặc thậm chí là một cuốn sách giáo khoa được viết hay về các lệnh MS-DOS và sự phát triển của các tệp bó sẽ phải mô tả nhiều sắc thái liên quan đến việc sử dụng các tham số khác nhau, đặc thù của hoạt động của các tệp bó trong các phiên bản khác nhau của Microsoft Cửa sổ, v.v. và như thế. Bài viết này không khẳng định là đầy đủ, cụ thể:

  • chúng tôi sẽ không mô tả những cách khác nhau để đạt được cùng một kết quả;
  • Chúng tôi sẽ không mô tả tất cả các khả năng và cách sử dụng của các lệnh được đề cập.

Bây giờ nhiệm vụ của chúng tôi là giúp những người hoàn toàn hoặc gần như không quen với công cụ này bắt đầu làm chủ các tệp bó. Sau đó bạn có thể đọc về tất cả các chi tiết trong tài liệu công ty hoặc sách tham khảo.

Bộ xử lý lệnh

Nhiều hệ điều hành, bao gồm cả những hệ điều hành do Microsoft phát triển, có bộ xử lý lệnh. Đây là tên của một chương trình bắt đầu thực hiện các hành động khác nhau để đáp lại các lệnh do người dùng nhập từ bàn phím. Về cơ bản, những hành động này bao gồm khởi chạy các chương trình cần thiết với các thông số nhất định. Nhưng không chỉ; Sau này chúng ta sẽ thấy rằng một số lệnh được thực thi trực tiếp bởi bộ xử lý lệnh. Về cơ bản, đây là các lệnh dùng để kiểm soát bối cảnh và trình tự thực hiện lệnh. Tuy nhiên, chúng ta sẽ không suy nghĩ quá sâu về bản chất của các lệnh, ít nhất là trừ khi chúng ta phải làm vậy. Quan trọng hơn, bất kỳ chương trình nào về mặt kỹ thuật có thể chạy từ dòng lệnh đều được bộ xử lý lệnh coi là một lệnh. Nó không phân biệt giữa các lệnh gốc được tích hợp ban đầu trong hệ điều hành và các chương trình được cài đặt trên nó.

Để khởi động bộ xử lý lệnh:

  1. Nhấn nút Bắt đầu. Menu chính sẽ được hiển thị trên màn hình.
  2. Chọn Chạy từ menu chính. Một hộp thoại sẽ xuất hiện trên màn hình Bắt đầu chương trình.
  3. Trong trường Mở, nhập chuỗi cmd.
  4. Nhấn nút ĐƯỢC RỒI. Một cửa sổ bộ xử lý lệnh sẽ xuất hiện trên màn hình.

Dòng lệnh và lệnh

Cửa sổ bộ xử lý lệnh ở dạng ban đầu trông có vẻ ảm đạm và làm việc với nó không thuận tiện lắm đối với hầu hết mọi người. Việc sử dụng trình quản lý tệp kiểu Norton Commander sẽ dễ dàng hơn nhiều. Chúng cung cấp cả hai công cụ để điều hướng nhanh hệ thống tệp và tính thời gian để nhập lệnh.

Để nhập lệnh:

  1. Gõ văn bản lệnh tại dòng lệnh.
  2. cắm chìa khóa Đi vào.

Bộ xử lý lệnh và các lệnh của hệ điều hành được mô tả trong tài liệu vận hành cho phần sau. Tài liệu này được chứa một phần trong chính hệ điều hành. Để truy cập nó sử dụng lệnh giúp đỡ. Lệnh này hiển thị danh sách các lệnh có sẵn. Để có được mô tả về một lệnh cụ thể, hãy sử dụng lệnh đó làm tham số giúp đỡ tên của cô ấy nên được chỉ định. Dòng lệnh hiển thị trong danh sách sau đây hiển thị mô tả về lệnh .

Giúp cho

Nếu bạn cố gắng nhập lệnh giúp đỡ, bạn có thể nhận thấy rằng kết quả công việc của nó (cái gọi là đầu ra) không vừa trên một màn hình. Vấn đề tương tự xảy ra với văn bản mô tả lệnh . Tin tốt là đầu ra có thể được chuyển hướng đến một tệp. Dòng lệnh hiển thị trong danh sách sau sẽ tạo ra tệp lệnh.txt, chứa danh sách tất cả các lệnh MS-DOS.

Trợ giúp > command.txt

Để tạo một tệp có mô tả lệnh , bạn cần đưa ra lệnh sau (bạn có thể đặt tên tệp đầu ra bất cứ thứ gì).

Trợ giúp cho > for.txt

Tổng cộng, có ít hơn 80 lệnh trong các hệ điều hành hiện đại của Microsoft và không thể mô tả chúng trong một bài viết. Ở đây chúng ta chỉ có thể đề cập đến một số lệnh hữu ích để tự động xử lý tệp và chỉ ra cách sử dụng chúng. Các lệnh này sẽ được sử dụng trong các ví dụ tiếp theo. Bạn luôn có thể làm rõ chi tiết bằng lệnh giúp đỡ hoặc trong thư mục.

sao chép— sao chép một hoặc nhiều tập tin;

del— xóa một hoặc nhiều tập tin;

di chuyển— di chuyển một hoặc nhiều tập tin hoặc thư mục;

đổi tên(viết tắt ren) - đổi tên một hoặc nhiều tệp hoặc thư mục;

xcopy— sao chép cây thư mục con;

mkdir(viết tắt md) — tạo một thư mục;

rmdir(viết tắt thứ) - xóa một thư mục.

Một trong những quy tắc chung của cú pháp lệnh MS-DOS là khi chỉ định tham số, nguồn được chỉ định trước và kết quả được chỉ định trước. Ví dụ: nếu chúng ta muốn di chuyển một tập tin bia.txt từ danh mục hộp vào danh mục bàn, chúng ta phải nhập lệnh được đưa ra trong danh sách sau đây.

Di chuyển bảng box\bia.txt

Đầu tiên là chuyển cái gì, sau đó chuyển đến đâu.

Nếu chúng ta muốn đổi tên tập tin lena.txt nộp natasha.txt, thì lệnh sẽ được viết như dưới đây.

Ren lena.txt natasha.txt

Đầu tiên là đổi tên cái gì, sau đó đổi tên cái gì.

Thư mục hiện tại. Đường dẫn tuyệt đối và tương đối

Khi làm việc với các lệnh tập tin, khái niệm về thư mục hiện tại trở nên cực kỳ quan trọng. Vấn đề là khi chỉ định một tệp làm tham số lệnh, chúng tôi luôn sử dụng một trong hai cách có thể để trỏ đến chúng: đường dẫn tuyệt đối hoặc đường dẫn tương đối. Trong đường dẫn đầy đủ, chúng tôi chỉ định mọi thứ bắt đầu bằng ổ đĩa (hoặc tên mạng của máy tính), ví dụ: d:\misha\box\bia.txt. Bất kể thư mục nào hiện tại khi lệnh được nhập, đường dẫn đầy đủ sẽ tương ứng với cùng một tệp. Đối với đường dẫn tương đối, thư mục hiện tại đóng vai trò là điểm bắt đầu. Trường hợp đơn giản nhất của đường dẫn tương đối là tên tệp. Trong ngữ cảnh thực thi lệnh, nó có nghĩa là một tệp có tên đó nằm trong thư mục hiện tại.

Để ghi một đường dẫn tương đối tới thư mục hiện tại, cần có một mục nhập có điều kiện . (chấm). Để ghi đường dẫn tương đối đến thư mục chứa thư mục hiện tại có ký hiệu điều kiện .. (hai dấu chấm). Lệnh hiển thị trong danh sách sau đây sao chép tất cả các tệp từ thư mục hiện tại vào thư mục hàng xóm, nằm bên cạnh nó.

Sao chép *.* .\neighbor

Tập tin hàng loạt

Cho đến bây giờ, khi đưa ra ví dụ, chúng tôi giả định rằng chúng tôi luôn nhập lệnh theo cách thủ công. Khi xử lý một số lượng lớn tệp hoặc thực hiện các lệnh giống nhau một cách có hệ thống, điều này sẽ trở nên cồng kềnh. Do đó, bộ xử lý lệnh cung cấp khả năng thực thi các tệp lệnh. Tệp bó là một tệp văn bản trong đó các lệnh (hoặc ít nhất một lệnh) được nhập. Một tệp bó ví dụ được hiển thị trong danh sách sau đây. Hãy thử đoán xem tập tin batch này làm gì.

Trợ giúp sao chép > copy.help help di chuyển > move.help md msdos-help move *.help msdos-help

Nếu mục đích của tệp này vẫn còn là một bí ẩn đối với bạn, thì hãy thử tạo và thực thi nó. Thông thường, người ta thường cung cấp phần mở rộng cho các tệp lệnh con dơi. Đây là cách các tệp thuộc loại này được bộ xử lý lệnh nhận dạng. Ví dụ, tập tin này có thể được gọi là make-help.bat.

Để chạy tệp bó:

  1. Nhập tên của anh ấy như một lệnh. Sau đó, tập tin batch sẽ được thực thi.

Trong một tập tin batch, mỗi lệnh chiếm một dòng. Chính xác hơn, có cách đặt một lệnh trên nhiều dòng liên tiếp; để làm được điều này, ngay trước mỗi lần ngắt dòng bạn nên đặt ký hiệu “cap” ^ . (Mỗi chữ hoa phải là ký tự cuối cùng trên dòng của nó; không được có dấu cách hoặc tab sau nó.) Một ví dụ về lệnh như vậy được hiển thị trong danh sách sau đây.

Nếu tồn tại disser.txt ^ sao chép disser.txt ^ d:\science\papers\drafts\sources

Nhưng để đơn giản, để không phải lúc nào cũng đặt chỗ trước, chúng ta sẽ giả định rằng theo một nghĩa nào đó, đây là một dòng dài “hợp lý”.

Khi một tệp bó được thực thi, bộ xử lý lệnh sẽ quét nó từ trên xuống dưới từ dòng đầu tiên đến dòng cuối cùng và thực thi các lệnh theo thứ tự mà nó gặp chúng. Nói chung, nó thực hiện chúng như thể chúng ta nhập từng cái một cách thủ công. Nói chung, vì một số lệnh hoạt động hơi khác khi được nhập thủ công và khi được thực thi từ một tệp bó.

Nhìn về phía trước, giả sử rằng, nếu cần, trình tự thực hiện lệnh có thể được thay đổi bằng các lệnh điều khiển (điều gì có thể gây ra nhu cầu như vậy là một câu hỏi riêng).

Đừng nhầm lẫn thư mục hiện tại với thư mục chứa tệp bó sẽ được khởi chạy. Giả sử thư mục hiện tại là công việc, nó chứa một thư mục công cụ và thư mục công cụ lưu trữ các tệp bó. Bạn chạy một trong số chúng bằng lệnh công cụ\collect-image.bat. Vì vậy, “theo quan điểm” của tập tin lệnh này, thư mục hiện tại sẽ vẫn là công việc, nhưng không công cụ.

Nhận xét tệp bó và đầu ra của nó. lệnh echo và rem

Tệp bó về cơ bản là một chương trình được viết bằng ngôn ngữ bộ xử lý lệnh của hệ điều hành. Văn bản của chương trình phải có kèm theo các nhận xét để khi bạn xem lại nó một thời gian sau, bạn không phải đau đầu nhớ lại lý do tại sao chương trình này lại cần thiết và cách thức hoạt động của nó.

Hệ thống lệnh MS-DOS cung cấp lệnh tạo bình luận: rem. Đây là một lệnh giả không liên quan đến việc thực hiện bất kỳ hành động nào nhưng cho phép bạn viết văn bản tùy ý trên dòng sau tên của bạn. Hơn nữa, bộ xử lý lệnh không coi đó là lỗi cú pháp. Một ví dụ về định dạng tệp lệnh có nhận xét được hiển thị trong danh sách sau.

Rem **************************************************** **** rem Tạo tập tin trợ giúp bằng cách sử dụng lệnh sao chép và di chuyển rem ********************************** * ******************* rem Tạo tập tin trợ giúp help copy > copy.help help move > move.help rem Tạo thư mục lưu trữ tập tin trợ giúp md msdos-help rem Di chuyển tập tin trợ giúp vào thư mục đã chuẩn bị di chuyển *.help msdos-help

Lưu ý các dòng trống chia tệp bó thành các “đoạn”. Thủ thuật đơn giản này cho phép bạn làm cho tệp bó của mình dễ đọc hơn.

Khi thực thi tệp bó trên, tất cả các lệnh sẽ được hiển thị trên màn hình khi chúng được thực thi, điều này không phải lúc nào cũng thuận tiện. Việc phát lệnh có thể bị vô hiệu hóa bằng lệnh @echo tắt. Biểu tượng "con chó" ở phía trước lệnh tiếng vangĐiều này có nghĩa là lệnh này phải được thực thi ở chế độ “im lặng”. Chúng ta có thể không sử dụng dòng lệnh tắt tiếng vang, nhưng hãy đặt một “con chó” trước mỗi lệnh.

Trong nhiều trường hợp, bạn muốn một tệp bó hiển thị một số thông báo nhất định trên màn hình (hoặc trong một tệp). Trong một số trường hợp, đây có thể là thông báo lỗi, trong một số trường hợp khác, đây là thông báo thông tin giải thích cho người dùng tệp bó về những gì đang xảy ra vào lúc này, khi chúng tôi tạo một số tệp hữu ích khác bằng tệp bó. Lệnh echo tương tự được sử dụng để hiển thị tin nhắn. Văn bản của thông báo sẽ được hiển thị sẽ được chuyển đến nó dưới dạng tham số. Danh sách các tệp bó được cải tiến được đưa ra dưới đây.

@echo tắt rem ********************************************** ******** ******* rem Tạo tập tin trợ giúp bằng cách sử dụng lệnh sao chép và di chuyển rem ************************* ********** ********************** @echo Tạo tập tin trợ giúp. Chỉ một giây... rem Tạo các tập tin trợ giúp help copy > copy.help help move > move.help rem Tạo một thư mục để lưu trữ các tập tin trợ giúp md msdos-help rem Di chuyển các tập tin trợ giúp vào thư mục đã chuẩn bị move *.help msdos -help echo Xong!

Truyền tham số vào tệp lệnh

Giả sử chúng ta muốn tạo một tệp bó trước tiên tạo trợ giúp mô tả lệnh do người dùng chỉ định, sau đó tải nó vào Notepad để xem. Bí quyết là bằng cách nào đó hãy cho nó biết vào lần tiếp theo khi chúng ta chạy tệp bó lệnh mà chúng ta quan tâm lần này.

Để giải quyết vấn đề này, một cơ chế xử lý tham số được cung cấp. Nó hoạt động khá đơn giản. Nếu, khi chạy một tệp bó, người dùng đã chỉ định một số tham số, thì trong văn bản của tệp bó, chúng tôi biểu thị tham số đầu tiên trong số đó bằng mục nhập %1 , mục thứ hai %2 , mục thứ ba %3 vân vân. Chúng tôi sử dụng các ký hiệu này trong văn bản của tệp lệnh giống như cách chúng tôi sử dụng đại từ trong lời nói tự nhiên.

Nội dung của tệp lệnh giải quyết vấn đề được hiển thị trong danh sách sau. Hãy chú ý đến lệnh giúp đỡ. Tham số đầu tiên của tệp lệnh được truyền cho nó dưới dạng tham số của nó.

@echo off rem Chúng tôi tạo một tệp có mô tả lệnh, rem có tên được truyền bởi tham số help %1 > help.tmp rem Chúng tôi tải tệp mô tả vào notepad của trình soạn thảo Notepad help.tmp

Giả sử chúng ta đặt tên cho tệp bó này show-help.bat. Ví dụ: để tải mô tả lệnh vào sổ ghi chú, thư mục, chúng ta phải nhập lệnh như sau.

Thư mục Show-help.bat

Tệp lệnh sau tạo một thư mục có tên được chỉ định trong tham số đầu tiên và ghi vào đó một tệp chứa văn bản mô tả lệnh được chỉ định trong tham số thứ hai.

Rem Một ví dụ về tệp lệnh có hai tham số rem Tạo một thư mục có tên được chỉ định bởi tham số đầu tiên md %1 rem Tạo một tệp trong đó có mô tả về lệnh rem được chỉ định bởi tham số thứ hai help %2 > %1\ %2.trợ giúp

Điều gì xảy ra nếu người dùng chỉ định bốn tham số thay vì hai tham số khi chạy tệp bó này? Không sao đâu, chúng sẽ không can thiệp vào bất cứ điều gì, chỉ là chúng sẽ không được sử dụng thôi. Điều gì xảy ra nếu người dùng chỉ chỉ định tham số đầu tiên? Tham số thứ hai sẽ trống. Hiệu ứng sẽ như sau: tệp bó sẽ được thực thi, nhưng như thể thay cho bản ghi %2 không có gì. Lệnh trợ giúp sẽ tạo danh sách tất cả các lệnh và đặt nó vào một tệp có tên trống và phần mở rộng .help. Nếu người dùng chạy tệp này mà không chỉ định bất kỳ tham số nào thì khi bộ xử lý lệnh cố gắng thực thi lệnh md(hãy nhớ rằng đây là để tạo thư mục), chúng ta sẽ gặp lỗi cú pháp vì lệnh md phải có tham số.

Vì vậy, việc sử dụng các tham số tạo ra những cơ hội lớn nhưng có thể làm phức tạp đáng kể vấn đề. Để tập tin batch luôn hoạt động chính xác, cần phải kiểm tra tính chính xác của các tham số do người dùng chỉ định và bằng cách nào đó phản hồi với dữ liệu đầu vào không đầy đủ hoặc không chính xác. Tất nhiên, bạn không thể làm điều này, nhưng một tệp bó hoạt động không chính xác có thể gây ra sự cố, đặc biệt nếu nó liên quan đến việc xóa hoặc ghi đè dữ liệu.

Biến. đặt lệnh

Một biến là một giá trị được đặt tên. Trong sách giáo khoa lập trình, một biến thường được so sánh với một phong bì có ghi tên trên đó. Bạn có thể đặt một thứ gì đó bên trong phong bì, chẳng hạn như một số tiền nhất định - đây là giá trị của nó. Giống như phong bì, giá trị của biến có thể được thay đổi.

Để khai báo một biến và đồng thời gán giá trị cho nó, hãy sử dụng lệnh bộ. Một ví dụ về lệnh này được hiển thị trong danh sách sau đây.

Rem Trình biên dịch các tệp trợ giúp ở định dạng CHM set help_compiler=c:\HTML Help Workshop\hcc.exe

Để trích xuất giá trị của một biến, tên của nó được đặt giữa hai dấu phần trăm, như minh họa bên dưới.

Rem Trình biên dịch các tệp trợ giúp ở định dạng CHM set help_compiler=c:\HTML Help Workshop\hcc.exe rem Tệp trợ giúp dự án của mô-đun "Warehouse" store_hpj=help\sources\store\store.hpj rem Tệp trợ giúp dự án của " Mô-đun " Bán hàng " set sales_hpj=help\sources\sale\sale.hpj rem Biên dịch các tệp trợ giúp %help_compiler% %store_hpj% %help_compiler% %sale_hpj%

Danh sách sau đây cho thấy tại sao các biến lại hữu ích.

Đầu tiên, chúng cho phép bạn sử dụng một đoạn ngắn đồng nghĩa với nó bên trong một tệp bó thay vì một đoạn dài (ví dụ: đường dẫn đến trình biên dịch tệp trợ giúp). Ít nhất là nó thuận tiện.

Thứ hai, chúng cho phép bạn tránh lặp lại các đoạn văn bản của tệp lệnh có thể thay đổi trong tương lai. Hãy tưởng tượng rằng chúng tôi đã cài đặt lại Microsoft HTML Workshop vào một thư mục khác. Nếu một biến được sử dụng trong một tệp bó để ghi lại đường dẫn đến nó, thì chỉ cần sửa một dòng trong tệp bó, cụ thể là dòng trong đó giá trị của biến được gán là đủ trình biên dịch trợ giúp. Nếu chúng ta viết đường dẫn đến trình biên dịch mỗi khi nó cần được gọi, thì sau khi thay đổi đường dẫn, chúng ta sẽ phải sửa từng dòng như vậy. Trong ví dụ đã cho, có hai tệp trong số đó, nhưng trong một dự án thực tế có thể dễ dàng có năm hoặc mười lăm tệp trong số đó, tùy thuộc vào số lượng tệp trợ giúp mà chúng ta muốn biên dịch. Vấn đề không phải là việc sửa thủ công từng dòng là khó (xét cho cùng thì chưa có ai hủy lệnh “sao chép” và “dán”) mà là điều này làm tăng đáng kể khả năng xảy ra lỗi vô tình.

Các tham số của tệp bó cũng là các biến, nhưng chúng khác với các biến thông thường ở chỗ giá trị của chúng được đặt khi tệp bó được khởi chạy. Trong tương lai, khi nói về các biến, đặc biệt là về cách làm việc với các giá trị của chúng, chúng ta cũng muốn nói đến các tham số của tệp lệnh, ít nhất là trong trường hợp không có sự bảo lưu rõ ràng về điều này.

Khi ghi các tệp bó, kỹ thuật sau thường được sử dụng: một số giá trị biến được chỉ định cạnh nhau (hoặc xen kẽ với một số ký hiệu hoặc dòng), để thu được một số giá trị có ý nghĩa mới. Một ví dụ được hiển thị trong danh sách sau đây.

Rem Đường dẫn đến trình biên dịch tệp trợ giúp set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Đường dẫn đến thư mục chứa các dự án tệp trợ giúp set project_path=e:\work\projects\help- dự án rem Chúng tôi gọi trình biên dịch để xử lý một dự án cụ thể, rem có tên được truyền trong tham số đầu tiên %help_compiler% %project_path%\%1.hpj

Kiểm tra các điều kiện và lựa chọn các tùy chọn. lệnh if và goto

Lệnh if cho phép bạn chọn các nhóm lệnh trong một tệp bó được thực thi hoặc không được thực thi tùy thuộc vào các điều kiện nhất định. Nó dùng để làm gì?

Kiểm tra điều kiện gần như là một bước cần thiết khi tạo file batch sử dụng tham số. Trước khi bắt đầu công việc, tệp bó thường cần đảm bảo rằng bộ tham số chính xác được truyền cho nó. Nếu không, có nguy cơ cao là nó sẽ được thực thi không chính xác hoặc không hiệu quả và người dùng sẽ chỉ thắc mắc vấn đề là gì. Hơn nữa, nếu một tệp bó xóa, di chuyển hoặc ghi đè bất kỳ dữ liệu nào, nó thậm chí có thể gây ra thiệt hại nếu tham số không chính xác.

Danh sách sau đây hiển thị tệp lệnh biên dịch tệp trợ giúp mà bạn đã quen thuộc. Việc kiểm tra tính không trống của tham số đầu tiên đã được thêm vào phần đầu của tệp lệnh. Xin lưu ý đặc điểm cú pháp này: thao tác so sánh sử dụng dấu bằng kép. Nếu tham số đầu tiên không trống, lệnh goto sẽ được thực thi, lệnh này sẽ ném shell vào nhãn đã chỉ định. Trong trường hợp này, tên của nhãn này là biên dịch. Lưu ý rằng khi nhãn xuất hiện, tên của nó được đặt trước dấu hai chấm, nhưng trong lệnh goto thì không. Nếu tham số đầu tiên trống, shell sẽ chuyển sang dòng tiếp theo và tạo ra thông báo lỗi. Và sau đó đến cái tiếp theo, chuyển nó đến cuối tập tin thành một nhãn có tên hoàn thành.

@echo off rem Chúng tôi kiểm tra xem tham số có được chỉ định hay không nếu không "%1"=="" goto biên dịch rem Nếu tham số trống, chúng tôi đưa ra thông báo lỗi echo Tên dự án của tệp trợ giúp rem không được chỉ định và đi tới phần cuối của tệp lệnh rem để kết thúc nhãn goto kết thúc rem Đây là nhãn có tên là biên dịch: biên dịch rem Dưới đây là các lệnh biên dịch rem Đường dẫn đến tệp trợ giúp trình biên dịch set help_compiler="c:\Program Files\HTML Help Workshop\hhc .exe" rem Đường dẫn tới thư mục chứa các dự án trợ giúp các tệp set project_path=e:\work\projects\help-projects rem Gọi trình biên dịch để xử lý một dự án cụ thể, rem có tên được truyền trong tham số đầu tiên %help_compiler% %project_path%\%1.hpj rem Đây là nhãn có tên finish:finish

Hãy đối mặt với nó, phương pháp kiểm tra tham số được đề xuất không phải là phương pháp thành công nhất.

Đầu tiên, nếu người dùng chỉ định nhầm tên của một tệp không tồn tại làm tham số, tệp bó sẽ hài lòng với điều này và cố gắng biên dịch. Cách tốt hơn là kiểm tra xem tệp đó có thực sự tồn tại hay không. Với mục đích này, ngôn ngữ lệnh MS-DOS cung cấp một từ đặc biệt hiện hữu. Vì vậy sẽ tốt hơn nếu viết: nếu tồn tại %1.hpj hãy biên dịch.

Thứ hai, sử dụng tích cực lệnh đi đến(cái gọi là bước nhảy vô điều kiện) và các nhãn khiến mã rất khó hiểu. Về mặt kỹ thuật, chúng không tệ, nhưng việc gỡ lỗi và duy trì một tệp bó được viết theo phong cách này khá bất tiện. Vì vậy, các lập trình viên từ lâu đã coi việc nhảy vô điều kiện là một kỹ thuật không mong muốn. Dưới đây được trình bày chính xác hơn, từ quan điểm của phong cách lập trình, phiên bản có cấu trúc, sử dụng cấu trúc nếu khác. Nó hoạt động như thế này: nếu điều kiện đúng, các lệnh trong ngoặc đơn sau nếu như, và nếu sai thì trong ngoặc đơn sau khác.

@echo off rem Kiểm tra xem tham số có được đặt hay không nếu không tồn tại %1.hpj (rem Nếu tham số trống, chúng tôi hiển thị thông báo lỗi echo Dự án tệp trợ giúp này không tồn tại.) else (rem Dưới đây là các lệnh biên dịch rem Path tới trình biên dịch tệp trợ giúp set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Đường dẫn đến thư mục chứa các dự án tệp trợ giúp set project_path=e:\work\projects\help-projects rem Gọi trình biên dịch để xử lý một dự án cụ thể, rem có tên được truyền trong tham số đầu tiên %help_compiler% %project_path%\%1.hpj)

Hãy chú ý đến vết lõm từ cạnh trái. Chúng là tùy chọn, nhưng làm cho văn bản của tệp bó dễ đọc hơn.

Hãy đưa ra một ví dụ khác về cách làm việc với séc. Tệp bó sau đây tạo một thư mục có tên tập tin trợ giúp(giả sử tải các tệp trợ giúp đã biên dịch lên đó). Hơn nữa, nếu một thư mục có cùng tên đã tồn tại (và nó có thể chứa các tệp trợ giúp cũ mà bạn không muốn mất: điều gì sẽ xảy ra nếu các tệp mới trở nên tệ hơn?), tệp bó sẽ gán phần mở rộng bak cho nó . Nhưng nếu thư mục help-files.bakđã tồn tại thì tệp bó sẽ xóa nó (chúng tôi sẽ cho rằng một bản sao lưu là đủ cho chúng tôi).

Nếu tồn tại help-files.bak rd help-files.bak nếu tồn tại help-files ren help-files help-files.bak md help-files

Xử lý tập tin hàng loạt. cho lệnh

Lệnh for cho phép bạn tổ chức thực hiện các hành động lặp lại cùng loại. Bạn có thể sử dụng nó để hiển thị các số từ một đến mười, như trong danh sách sau.

Đối với /l %%i trong (1,1,10) thực hiện echo %%i

Biến đổi Tôiđược gọi là bộ đếm vòng lặp. Do cú pháp độc đáo của lệnh , tên của bộ đếm vòng lặp phải bao gồm một chữ cái. Hơn nữa, nếu chúng ta đang viết một tệp bó, thì chúng ta cần đặt một dấu phần trăm kép trước tên của bộ đếm vòng lặp, nhưng nếu chúng ta chỉ gõ một lệnh trên dòng lệnh thì một lệnh duy nhất.

Logic của lệnh này như sau. Sau lời nói TRONG phạm vi thay đổi của bộ đếm chu kỳ được chỉ định. Trong phiên bản lệnh này, đây là bộ ba số: giá trị ban đầu của bộ đếm, bước đếm, giá trị giới hạn của bộ đếm. Khi thực thi một lệnh, đầu tiên shell sẽ gán biến Tôi nghĩa 1 , và sau đó ở mỗi bước của vòng lặp, nó sẽ tăng thêm 1 cho đến khi vượt quá 10 . Hiển nhiên sẽ có mười bước như vậy. Nếu chúng tôi chỉ định một số làm bước đếm 2 , thì vòng lặp sẽ được thực hiện năm lần. Ở mỗi bước của vòng lặp, phần thân của vòng lặp được viết sau từ được thực thi LÀM. Trong ví dụ trên, đây là lệnh echo, hiển thị giá trị hiện tại của bộ đếm vòng lặp.

Bạn có thể nghĩ đến một tình huống thực sự cần một thứ như thế này, nhưng thông thường lệnh được sử dụng để lặp lại và xử lý các tập tin. Phải nói rằng trong những trường hợp khá đơn giản, việc xử lý tệp hàng loạt được thực hiện bằng ký tự đại diện. Nếu chúng ta muốn thay thế tất cả các tệp trong thư mục hiện tại bằng phần mở rộng .htm TRÊN .html, chúng ta nhập lệnh ren *.htm *.html. Nhưng nếu điều tương tự cần được thực hiện không phải trong một thư mục mà trong cây thư mục, thì bạn không thể thực hiện nếu không có lệnh for. Tệp bó sau đây thực hiện thao tác này cho tất cả các tệp htm trong thư mục con trang web của thư mục hiện tại. Chính xác hơn, trong toàn bộ cây thư mục bên trong trang mạng.

Đối với /r trang web %%i in (*.htm) do ren %%i %%~ni.html

Chìa khóa /r cho biết sự cần thiết phải duyệt qua thư mục trang mạng và tất cả những gì bên trong nó. Nếu bạn không chỉ định nó (nhưng sau đó bạn không được phép chỉ định thư mục), thì chỉ các tệp trong thư mục hiện tại mới được xử lý. Phạm vi giá trị của bộ đếm vòng lặp trong biến thể lệnh này là tập hợp tất cả các tệp có phần mở rộng .htm, nằm bên trong một thư mục (chính xác hơn là một cái cây) trang mạng. Một mục lạ thoạt nhìn ~ni có nghĩa là từ giá trị của biến Tôi Bạn chỉ cần chọn tên tập tin. Ngôn ngữ lệnh MS-DOS cung cấp một số công cụ sửa đổi như vậy, ví dụ như viết ~xi biểu thị phần mở rộng của tập tin. Tất cả các sửa đổi được mô tả trong trợ giúp lệnh .

Phần thân của vòng lặp có thể bao gồm một số lệnh được đặt trong dấu ngoặc đơn.

@echo off for /r website %%i in (*.htm) do (rem In tên file echo %%i rem Đổi tên file ren %%i %%~ni.html)

Chuyển điều khiển sang tập tin batch khác. lệnh gọi

Có thể gọi một tệp bó khác từ một tệp bó. Lệnh cho việc này là gọi. Tuyệt vời, các biến được chỉ định trong tệp bó lệnh gọi đều “hiển thị” đối với biến được gọi. Và ngược lại, sau khi tệp được gọi hoàn thành công việc của nó và trả lại quyền điều khiển cho người gọi, người sau sẽ “nhìn thấy” các biến mà cái gọi là “kế thừa” để lại cho nó. Điều này cho phép nhà phát triển tệp bó thực hiện một số việc như thế này: Nếu một số tệp lệnh phải sử dụng cùng một giá trị, chẳng hạn như đường dẫn đến một số tệp, thì chúng có thể được đặt trong một tệp lệnh riêng, tệp này sẽ đóng vai trò của tệp cấu hình. Mỗi tệp lệnh làm việc sẽ bắt đầu bằng lệnh gọi tệp cấu hình. Lợi ích là khi thay đổi đường dẫn, bạn chỉ phải thực hiện các thay đổi đối với một tệp cấu hình chứ không phải thay đổi nhiều công nhân.

Tệp bó "Cấu hình" cấu hình.bat.

Rem Đường dẫn đến trình biên dịch tệp trợ giúp set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Đường dẫn đến thư mục chứa các dự án tệp trợ giúp set project_path=e:\work\projects\help- dự án

Tệp bó "Đang làm việc".

@echo off rem Thiết lập biến gọi config.bat rem Kiểm tra xem tham số có được đặt hay không nếu không tồn tại %1.hpj (rem Nếu tham số trống, chúng tôi sẽ hiển thị thông báo lỗi echo Dự án tệp trợ giúp này không tồn tại.) else ( rem Dưới đây là các lệnh biên dịch rem Chúng tôi gọi trình biên dịch để xử lý một dự án cụ thể, rem có tên được truyền trong tham số đầu tiên %help_compiler% %project_path%\%1.hpj)