相关疑难解决方法(0)

这些奇怪的环境变量是什么?

GetEnvironmentString()用来获取程序的环境变量.

每个程序都有这样的结果:

=::=::\
Run Code Online (Sandbox Code Playgroud)

我不知道这是什么意思?

这是代码:

LPWCH lpEnvString=GetEnvironmentStringsW();
 LPWSTR lpszVariable=(LPWSTR)lpEnvString;
 while (*lpszVariable)
 {
     wprintf(L"%s\n",lpszVariable);
     lpszVariable+=wcslen(lpszVariable)+1;
 }
 FreeEnvironmentStringsW(lpEnvString);
Run Code Online (Sandbox Code Playgroud)

此外,如果我们开始列出这些变量,我们会看到如下内容:

=::=::\
=C:=C:\Users\username\value
=ExitCode=00000001
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\artik\AppData\Roaming
CommonProgramFiles=C:\Program Files (x86)\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
Run Code Online (Sandbox Code Playgroud)

另一方面,getenv("=ExitCode")getenv("=C:")返回NULL.

你能否提供这个"功能"的正确文档,例如getenv()忽略这样的字符串以及如何处理这些值?

windows winapi environment-variables

17
推荐指数
1
解决办法
1945
查看次数

如何在启动时更改Octave工作目录?

我花了很多时间搜索Octave wiki,文档等,最终找到了一种在启动时更改Octave工作目录的方法; 在Octave命令提示符下键入system('set')时,它会列出所有环境变量,即USERPROFILE=C:\Users\me.但我想要加载程序C:\Users\me\Octave.

可能的解决方案包括添加以下行

setenv("USERPROFILE", "C:\\Users\\me\\Octave");
cd(getenv("USERPROFILE"));
Run Code Online (Sandbox Code Playgroud)

C:\Octave\Octave-4.0.3\share\octave\4.0.3\m\startup\octaverc.

但是,这对我来说似乎有点笨拙.它USERPROFILE在每个Octave启动时更改环境变量,然后告诉程序将其用作工作目录.USERPROFILE可能在Windows命令行上有永久更改的方法吗?

working-directory octave windows-7

3
推荐指数
1
解决办法
1万
查看次数