Trong Bash tôi có thể tạo các biến môi trường TẠM THỜI trên một dòng lệnh. Đối với eample
DEBUG=foo somecommand
Điều này đặt biến môi trường DEBUG
nhưng chỉ cho somecommand
. Khi dòng kết thúc DEBUG
không còn được thiết lập.
Tôi có thể làm điều gì đó tương tự trong Bộ xử lý lệnh Windows không?
Lưu ý: Sử dụng SET
không hoạt động. Điều đó đặt môi trường bộ xử lý lệnh hiện tại, không chỉ cho lệnh sắp được thực thi.
Để đưa ra một ví dụ khác ở đây là một chương trình node.js nhỏ in giá trị của một biến môi trường
// test.js
console.log(`${process.argv[2]}='${process.env[process.argv[2]]}'`);
Hãy chạy nó trong bash
$ export FOO=abc
$ node test.js FOO
FOO='abc'
Sau đó, hãy chạy nó với một thiết lập tạm thời
$ FOO=def node test.js FOO
FOO='def'
Kiểm tra xem FOO vẫn còn abc
$ echo $FOO
abc
Làm thế nào tôi có thể thực hiện điều tương tự trong dấu nhắc lệnh của Windows?
Một cách dường như là khởi chạy lại bộ xử lý lệnh như trong
cmd /S /C "set "FOO=def" & node test.js FOO"
Có cách nào khác hay không?
set foo=bar && echo %foo% && set foo= && echo %foo%
không hoạt động :(