Tôi có một tập tin thực thi có sử dụng thành ngữ này (nhiều lần) để đọc một giá trị registry vào một biến môi trường:Tại sao hàng loạt tập tin thất bại khi lặp qua đầu ra lệnh?
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKLM\SOFTWARE\Path\To\Key" /v ValueName') DO SET MyVariable=%%B
(Có một ký tự tab sau delims=
)
này hoạt động tốt trên hàng ngàn máy tính của khách hàng. Nhưng trên máy tính của khách hàng (chạy Windows Server 2003, mở rộng lệnh), không thành công với 'REG QUERY' HKLM \ SOFTWARE \ Đường dẫn \ To \ Key "/ v ValueName 'không được nhận dạng như lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tập tin thực thi. ' Chạy lệnh "reg truy vấn" một mình hoạt động tốt. Reg.exe hiện diện trong C: \ Windows \ System32.
tôi đã có thể làm việc xung quanh vấn đề bằng cách thay đổi mã để
REG QUERY "HKLM\SOFTWARE\Path\To\Key" /v ValueName > temp.txt
FOR /F "tokens=2* delims= " %%A IN (temp.txt) DO SET MyVariable=%%B
này có khách hàng và chạy, nhưng tôi muốn hiểu tại sao các vấn đề xảy ra vì vậy tôi có thể tránh nó trong tương lai .
Hơi tắt chủ đề chính - một cách trực tiếp hơn để có được giá trị đăng ký (chuỗi hoặc DWORD) vào một biến môi trường cũng sẽ hữu ích.
Tôi đã xác minh rằng EnableExtensions đã được đặt. Tôi sẽ chỉnh sửa câu hỏi để lưu ý điều đó. –