Biến môi trường trong phím tắt .lnk


1

Tôi muốn tạo một phím tắt windows, mở ra javaw.exeở một điểm đến khác nhau . Điểm đến này là nội dung của biến môi trường hệ thống của tôi %MY_OWN_JAVA_HOME%.

Tôi đã cố gắng làm:

  1. nhấp chuột phải vào thư mục (sử dụng windows explorer)
  2. New => Shortcut
  3. Nơi Đến: %MY_OWN_JAVA_HOME%\bin\javaw.exe -cp ......
  4. Next, Finish

Vấn đề là, biến môi trường được tính tại thời điểm tạo . Khi tôi mở các cài đặt của biến môi trường này, thì giá trị hiện tại của biến được sử dụng.

Làm cách nào để giữ biến là đích của phím tắt?


Đặt %MY_OWN_JAVA_HOME%\bin\javaw.exe -versiontrong một tệp bó và chạy tệp bó từ phím tắt.
DavidPostill

@DavidPostill thx, hoạt động. Nhưng nó luôn luôn mở ra một cmdcơn gió. Nếu tôi sử dụng start %MY_OWN_JAVA_HOME%\bin\javaw.exe -versiontrong batchfile, thì cửa sổ cmd sẽ đóng ngay lập tức. Và tôi đang thu nhỏ cửa sổ cmd bằng các cài đặt phím tắt. Tuy nhiên, tôi không muốn mở cửa sổ thứ hai.
slartidan

Thử start /Bứng dụng Bắt đầu mà không tạo cửa sổ
mới`

Câu trả lời:


2

Bạn vẫn có thể tạo một lối tắt với biến môi trường bằng cách sử dụng Đối tượng COM từ VBScript hoặc powershell. Phương thức " CreateShortcut " (cũng có thêm chi tiết cho các đối số ở đây ) có khả năng đó. Mặc dù ban đầu là một giải pháp vbscript, bạn có thể gọi nó từ một dấu nhắc powershell như thế này:

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\Public\Desktop\My Java Shortcut.lnk")
$Shortcut.TargetPath = "%SMS_ADMIN_UI_PATH%\javaw.exe"
$Shortcut.Arguments = "-cp"
$Shortcut.Save()

Xin lưu ý rằng các đối số không đi trong đường dẫn đích. Ngoài ra nó có thể không hoạt động nếu biến môi trường của bạn chứa khoảng trắng. Mặt trái của điều này là bạn có một phím tắt thực sự chứ không phải một số trình bao bọc, nhược điểm là, bạn không bao giờ có thể thay đổi phím tắt này thông qua hộp thoại thuộc tính của nó. Ngay sau khi bạn làm điều này, biến được thay thế một lần nữa.

Nếu bạn muốn một trình bao bọc, tôi cũng sẽ đề xuất một tệp vbs hoàn toàn im lặng. Tạo một tệp văn bản mới và dán dòng

CreateObject("WScript.Shell").Run """%MY_OWN_JAVA_HOME%\bin\javaw.exe"" -cp", , False

trong đó và lưu nó dưới dạng "runmyjava.vbs" và tạo lối tắt đến tệp đó và nó sẽ không có một cửa sổ bật lên màu đen thậm chí không trong một giây. Lưu ý thêm "" phía trước sau đường dẫn đến tệp thực thi. Chúng chỉ cần thiết nếu biến môi trường chứa khoảng trắng.


1

Một giải pháp là sử dụng .lnktệp lối tắt đã được tạo trong Windows XP. Những phím tắt đó sẽ giữ các biến của bạn ở đích phím tắt - ngay cả khi bạn thay đổi đích.


Một giải pháp khác là, như được đề xuất bởi @DavidPostill trong các bình luận, sử dụng một tệp bó như thế này làm mục tiêu phím tắt:

@echo off
start "" "%MY_OWN_JAVA_HOME%\bin\javaw.exe" %*

Sau đó chọn "Thu nhỏ" trong các tùy chọn phím tắt.

Giải pháp này hoạt động tốt, nhưng mở một cửa sổ bật lên cmd tối thiểu trong một giây.


-1

Tôi muốn đề xuất một giải pháp khác, hoạt động trong Windows Vista, mặc dù tôi không biết liệu nó có hoạt động trong các phiên bản Windows mới hơn không: Theo kinh nghiệm của tôi, viết bảo vệ tệp .lnk sẽ luôn ngăn chặn các biến đích / đích đến được mở rộng. Chúng thường được mở rộng khi .lnk được tạo (hoặc khi nó được sử dụng), nhưng chúng có thể được xác nhận lại và sau đó được duy trì bằng cách viết bảo vệ .lnk trước khi bạn sử dụng (lần sau).


Câu trả lời này có vẻ không đầy đủ.
Ramhound
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.