Làm thế nào để thiết lập dấu nhắc lệnh biến môi trường tạm thời như bash?


0

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 DEBUGnhưng chỉ cho somecommand. Khi dòng kết thúc DEBUGkhô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 SETkhô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?


"Có cách nào khác hay không?" Tôi nghĩ đó là cách duy nhất. set foo=bar && echo %foo% && set foo= && echo %foo%không hoạt động :(
DavidPostill

Câu trả lời:


-1

Chỉ cần sử dụng setlệnh:

C:\>set foo=bar

C:\>echo %foo%
bar

C:\>exit

Mở cmd lần nữa

C:\>echo %foo%
%foo%

C:\>
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.