Làm thế nào để loại trừ thư mục hiện tại khỏi tìm kiếm thực thi trong Windows?


0

Khi gõ một lệnh trong Windows shell, đầu tiên nó sẽ tìm chương trình trong thư mục hiện tại và sau đó từ các thư mục PATH. Có thể bằng cách nào đó (ví dụ: bởi một biến môi trường) loại trừ thư mục hiện tại khỏi tìm kiếm? Một cái gì đó giống như SafeDllSearchMode nhưng dành cho các tệp thực thi thay vì DLL-s?

Nói cách khác - nếu tôi có một foo.exe trong thư mục hiện tại và thứ hai trong thư mục khác trong PATH, làm cách nào tôi có thể thực thi cái trong thư mục PATH mà không chỉ định đường dẫn đầy đủ của nó?


Như một giải pháp thay thế, bạn có thể thực hiện cd \somwhere\elsemột thư mục không có tệp thực thi.
Aganju

Câu trả lời:


0

Tôi không biết cách nào để làm cho cmd loại trừ đường dẫn hiện tại. Tuy nhiên, gần như là một xấp xỉ gần đúng, bạn có thể sử dụng mkdir để tạo một thư mục trống trong thư mục hiện tại, cd vào nó, chạy lệnh của bạn, sao lưu cd và xóa thư mục:

SET _tempdir=%date%%time%
MKDIR %_tempdir%
CD %_tempdir%
REM run commands
...
CD ..
RM %_tempdir%

Tất nhiên, thư mục trống có thể là bất cứ nơi nào bạn có quyền truy cập ghi; Tuy nhiên, nếu nó ở đâu đó ngoài cùng thư mục đó, có lẽ sẽ dễ dàng hơn khi sử dụng Pushd để đi vào đó và bật ra để thoát ra trước khi gỡ bỏ nó. Tuy nhiên, sử dụng một thư mục trống mà bạn vừa tạo có vẻ là một ý tưởng tốt hơn so với cd-ing vào một thư mục ngẫu nhiên - thư mục mới vẫn sẽ là đầu tiên trên đường dẫn, vì vậy tốt hơn là sử dụng một thư mục bạn biết là trống.

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.