Làm thế nào để biết tập tin nào được nhấp chuột phải vào?


0

Tôi đang cố gắng viết một kịch bản và thêm nó vào menu ngữ cảnh nhấp chuột phải. Để thêm các mục vào menu, tôi đã sử dụng điều này: Windows: Cách thêm hành động tập lệnh bó vào menu Nhấp chuột phải , ngoại trừ thay vì

HKEY_CLASSES_ROOT\Directory\shell\MyScript1

Tôi đã sử dụng

HKEY_CLASSES_ROOT\*\shell\MyScript1

vì vậy chúng sẽ xuất hiện trên tất cả các tệp, bất kể phần mở rộng.

Bây giờ, trong tệp bat thực tế, tôi cần một cách để biết tệp nào được nhấp chuột phải, vì vậy tôi có thể sử dụng nó làm đầu vào. Có cách nào để đặt đường dẫn đầy đủ của tệp vào một biến để sử dụng sau này không?

Câu trả lời:


0

Nếu một đối số được truyền cho tập lệnh bó là một tệp, bạn có thể sử dụng các biến môi trường để nhận các thứ như đường dẫn, tên tệp, phần mở rộng tệp, v.v. Ví dụ:

@echo off
::
::If no parameter is passed, exit.
::
if [%~1]==[] echo Missing parameter! Script will exit... && exit /b

::
::If file does not exist, exit.
::
if not exist "%~1" echo File does not exist. Are you sure "%~1" is a file? && exit /b

echo.
echo File info
echo ---------
echo Path: %~dp1
echo Name: %~n1
echo Extension: %~x1
echo.
pause
exit /b

Điều này hoạt động bất kể bạn kéo tập tin vào tập lệnh hay truyền nó dưới dạng tham số từ dòng lệnh. Bạn có thể tìm hiểu thêm về đối số và cú pháp mở rộng của chúng tại SS64.com.


1
Tuyệt quá. Tôi vẫn còn nhiều điều phải học hỏi. Cảm ơn bạn.
user304822
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.