Lệnh SELECT đã làm gì trong DOS?

Sep 07 2020

Phần giới thiệu về DOS cho Dummies: Quick Reference của Greg Harvey (cũng có phụ đề là Command Reference trong ấn bản đầu tiên) có đoạn này:

Cuốn sách này không chỉ cung cấp cho bạn thông tin chi tiết về từng lệnh DOS - ngoại trừ DELOLDOS, FDISK và SELECT, bộ ba lệnh mà tôi đảm bảo bạn sẽ không bao giờ bỏ lỡ […]

(Một ấn bản khác mà tôi nhớ có lúc cũng liệt kê DEBUGở đây.)

Bây giờ, DEBUGvà FDISKkhá nổi tiếng. Về phần DELOLDOS, tên lệnh đủ gợi ý để tôi đoán mục đích của nó là xóa bất kỳ phiên bản DOS nào trước đó sau khi nâng cấp và một số tìm kiếm trên web xác nhận điều này . Đối với SELECTmặc dù, tôi đang bối rối. Đây không phải là lệnh nội bộ của COMMAND.COM, và không có thực thi SELECT.COM hoặc SELECT.EXE trên bất kỳ đĩa nào trong số bốn đĩa cài đặt MS-DOS 6.22 của tôi; không có gì cũng được đề cập trong hệ thống trợ giúp trực tuyến (HELP.COM). Thậm chí, có lúc tôi bắt đầu nghi ngờ đây có thể là một bản in sai.

SELECTLệnh này đến từ đâu? Nó đã làm gì? Đây có phải là một lệnh thực sự không?

Trả lời

6 StephenKitt Sep 07 2020 at 14:03

SELECT đã được giới thiệu trong IBM PC DOS 3.0, cùng với hỗ trợ quốc tế hóa và có sẵn trong MS-DOS bắt đầu từ phiên bản 3.3.

Mục đích của nó là tạo một đĩa có thể khởi động với sự hỗ trợ cho một mã quốc gia nhất định và bố cục bàn phím. Cú pháp, bắt đầu với phiên bản 3.2, là

SELECT [[drive1:] drive2:[path]] country keyboard

đâu drive1là ổ nguồn ( Atheo mặc định), drive2ổ đích ( Btheo mặc định), countrylà một trong những mã quốc gia được hỗ trợ (033 cho Pháp, 049 cho Đức - Tây Đức vào thời điểm đó - v.v.) và keyboardlà một trong những mã có sẵn bàn phím ( FR, GRv.v.).

Đây thực sự là quy trình cài đặt cho các phiên bản DOS dựa trên đĩa mềm, bên ngoài Hoa Kỳ: chuẩn bị một đĩa mềm trống, khởi động bằng đĩa DOS 1, và chạy SELECTvới mã quốc gia và bàn phím thích hợp. Điều này sẽ dẫn đến một đĩa DOS có thể sử dụng được, với tất cả nội dung của đĩa DOS 1 và một bàn phím được định cấu hình chính xác ngay sau khi hệ thống được khởi động.

Phiên bản 3.0 và 3.1 SELECTsử dụng DISKCOPYđể sao chép đĩa nguồn vào đĩa đích, định dạng sau này nếu cần. Phiên bản 3.2 và 3.3 sử dụng FORMATvà XCOPYthay thế; phiên bản 3.3 hỗ trợ ổ cứng (mặc dù việc chạy FDISKđược để lại như một bài tập cho người dùng, trước khi chạy SELECT). Trong cả hai trường hợp, đĩa đích bị xóa và tất cả nội dung của đĩa nguồn được sao chép, không chỉ các tệp cần thiết để hỗ trợ quốc gia và bàn phím mong muốn. Trong phiên bản 3.2, nếu đĩa nguồn không bao gồm KEYBxxtệp cần thiết cho bàn phím mong muốn, người dùng sẽ được nhắc thay thế đĩa chứa nó. Sau đó, tất cả các phiên bản sẽ ghi một tệp thích hợp CONFIG.SYSvà AUTOEXEC.BATvào đĩa đích, chứa

COUNTRY=<country>

(thêm cả COUNTRY.SYSđường dẫn nếu cần) và

PATH ...
KEYB...
ECHO OFF
DATE
TIME
VER

Đường dẫn mặc định ( PATHở trên) phụ thuộc vào đường dẫn cài đặt (tham số thứ hai).

Trong phiên bản 4.0 của PC DOS và MS-DOS, SELECTđã trở thành một công cụ cài đặt tương tác, được khởi động tự động từ đĩa cài đặt (hoặc đĩa “Chọn” trên bộ đĩa 5.25 ”).

Trong phiên bản 5.0 của PC DOS và MS-DOS, chương trình thiết lập đã được đổi tên thành SETUP.EXEvà giới thiệu hỗ trợ nâng cấp DOS. Đây là DELOLDOSnguồn gốc: khi nâng cấp, SETUPsẽ tạo DELOLDOS, có thể được sử dụng để hoàn tác nâng cấp, khôi phục phiên bản trước của DOS (và khu vực khởi động của nó, v.v.).

Dường như đã có một phiên bản khác của SELECTKarl D. Wright viết cho Phoenix Technologies và được đưa vào ít nhất một số phiên bản OEM của MS-DOS 3.2; nhìn nhanh qua nó cho thấy nó hoạt động tương tự như "chính thức" SELECT.

Theo Bách khoa toàn thư MS-DOS , SELECTđã có trong PC DOS 2.0, nhưng đĩa PC DOS 2 của tôi không có và sẽ không có nhiều công dụng đối với nó trên PC DOS 2 vốn không có COUNTRYtuyên bố hoặc các KEYBxxlệnh.

7 Raffzahn Sep 07 2020 at 03:51

TL; DR;

Lệnh SELECT này đến từ đâu?

PC-DOS

Nó đã làm gì?

Cài đặt DOS trên một ổ đĩa trống dưới dạng một ổ đĩa khởi động hoàn chỉnh bao gồm các tệp ngôn ngữ / quốc gia cụ thể.

Đây có phải là một lệnh thực sự không?

Đúng.


Câu chuyện dài:

SELECTvề cơ bản giống như một FORMAT /S, nó cũng sao chép các tệp cần thiết như KEYBGRcho bàn phím tiếng Đức hoặc COUNTRY.SYSvà tạo sự phù hợp AUTOEXEC.BATvà CONFIG.SYSvới các cài đặt thích hợp cho bàn phím và màn hình.

Bộ nhớ của tôi SELECTchỉ có sẵn cho PC-DOS của IBM và chỉ hoạt động từ các ổ đĩa mềm, với A:mã cứng làm nguồn cho tất cả các tệp và B:là đích.

Các phiên bản PC-DOS (3?) Sau này cho phép lựa chọn ổ nguồn và ổ đích, vì vậy nó có thể được sử dụng để cài đặt trên đĩa cứng. Một lần nữa sau đó, tiện ích chức năng cố định được điều khiển bằng dòng lệnh đã được thay thế bằng một trình cài đặt tương tác cùng tên, cuối cùng (DOS 6?) Được thay thế bằng SETUP.


Trình cài đặt / SETUP này cũng là thứ mang lại DELOLDOS, vì chúng chỉ sao chép bất kỳ cài đặt DOS nào trước đó trên ổ đĩa đích vào một thư mục có tên OLD_DOS. DELOLDOSđã kiểm tra xem thư mục đó có được tìm thấy trên ổ đĩa đã ghi hay không. Nếu có, nó đã xóa thư mục và lần lượt chính nó. Vì vậy, thường khó tìm - đặc biệt nếu ai đó đã sử dụng nó trên một hệ thống :)

5 MichaelGraf Sep 07 2020 at 03:08

Trích dẫn trang web hỗ trợ MS DOS của DEW Associates từ năm 1998 : CHỌN "định dạng đĩa và cài đặt thông tin quốc gia cụ thể và mã bàn phím."

Điều này chỉ phù hợp khi bạn muốn khởi động từ đĩa mềm. SYS sẽ làm cho đĩa này có thể khởi động được, nhưng không sao chép các tệp cấu hình mà sau đó bạn sẽ phải sao chép bằng tay. SELECT thực hiện điều này cho bạn.

Vào thời điểm MS DOS 6.22 xuất hiện, trường hợp sử dụng này hầu như không tồn tại; mọi người đã khởi động từ đĩa cứng. Trang web ở trên lưu ý rằng "trong phiên bản DOS 6, lệnh này được lưu trữ trên đĩa bổ sung DOS", đó có thể là lý do tại sao bạn không thể tìm thấy nó; hoặc có thể nó đã bị xóa hoàn toàn.