Trong dòng lệnh của Windows, echo %PATH%
xuất hiện để hợp nhất hệ thống và các biến người dùng PATH
theo thứ tự như vậy trước khi in. Điều đó có vẻ hợp lý, nhưng tôi cũng muốn chỉ có thể in biến hệ thống (hoặc, thay vào đó, chỉ có biến người dùng).
Lưu ý rằng đó echo
chỉ là một ví dụ, tôi hy vọng nó sẽ hoạt động với bất kỳ lệnh nào khác.
Người ta có thể dễ dàng thiết lập bằng cách sử dụng (hoặc không) /M
cờ khi ban hành SETX
lệnh:
SETX PATH "D:\some\user\path"
^ sets the user variable PATH
SETX PATH "C:\some\system\path" /M
^ sets the system-wide variable PATH
Nhưng đánh giá %PATH%
theo cách đó dường như không đơn giản (hoặc thậm chí có thể). Chỉ cần gõ vào %PATH%
kết quả trong:
C:\some\system\path;D:\some\user\path
Chỉ có thể lấy lại C:\some\system\path
(hoặc chỉ D:\some\user\path
)?
Tôi nhận thức được sự tồn tại của giao diện GUI cho phép người ta dễ dàng phân biệt giữa hai giao diện này. Tuy nhiên, tôi muốn đạt được nhiệm vụ này chỉ bằng dòng lệnh.
for /f "tokens=2*" %a in ('reg query HKCU\Environment /v PATH 2^>NUL') do @echo %b
để tránh LRI: Hệ thống không thể tìm thấy khóa hoặc giá trị đăng ký được chỉ định (ghi chú2^>NUL
). Hơn nữa, có thể loại bỏskip=2
vì nó quá dư thừa cho trường hợp này (nhưng vẫn quan trọng đối vớiHKLM
truy vấn)