Win32::Env
模块用于临时设置环境变量。
我需要永久设置,请帮助
请帮助我将其设置为永久。 因为我希望它在另一个exe中使用。
use Win32::Env;
SetEnv(ENV_USER, 'AUTO_EXCEL_EXPORT', 'TRUE');
通过此代码,我只能在Windows中将环境变量设置为临时变量。 当我检查该变量的回显命令时,它没有显示。 因为它被设置为半永久值。
答案 0 :(得分:2)
在Windows中分配/更改环境变量时,需要在新打开的Windows /应用程序看到更改之前通知Explorer子系统已发生更改。如果这没有发生,则必须重新启动,其他进程才能看到更改。
您在SYNOPSIS的Win32::Env中看到,他们接到了BroadcastEnv()的电话,该电话执行了上述通知任务。
在查看了模块的代码之后,作者正在注册表中设置变量,以便调用可以更正此问题。但是请注意,如果您在运行脚本时从cmd
窗口运行内容,无论如何,您都必须关闭该窗口并打开一个新窗口以使更改生效。所有新窗口都应获取更新的环境。
示例:
use Win32::Env;
SetEnv(ENV_USER, 'AUTO_EXCEL_EXPORT', 'TRUE');
BroadcastEnv();
答案 1 :(得分:0)
use Win32::Env;
SetEnv(ENV_USER, 'AUTO_EXCEL_EXPORT', 'FALSE');
BroadcastEnv();
print "\n";
DelEnv(ENV_USER, 'AUTO_EXCEL_EXPORT');
print "\n";
SetEnv(ENV_USER, 'AUTO_EXCEL_EXPORT', 'TRUE');
BroadcastEnv();
if i run this code its setting only first ENV ( false ) value, in echo command why??????