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 PATHtheo 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 đó echochỉ 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) /Mcờ khi ban hành SETXlệ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=2vì nó quá dư thừa cho trường hợp này (nhưng vẫn quan trọng đối vớiHKLMtruy vấn)