MinGW / Cygwin在哪里将环境变量转换为Windows样式?

时间:2018-12-23 22:33:46

标签: windows bash environment-variables cygwin

如果您在Cygwin或MinGW bash shell中,则$ PATH之类的环境变量将采用“ UNIX”格式-使用正斜杠作为目录分隔符,并使用冒号分隔多个路径。但是,如果在此shell中运行cmd.exe /c 'echo %PATH%'之类的东西,则结果输出为“ Windows”格式,分别使用反斜杠和分号。

这个神奇的转换记录在某处吗?还是更好,有人可以指出实现此目标的代码吗?

(我问的原因是,似乎转换并不总是发生,并且我试图了解发生转换的确切条件。)

1 个答案:

答案 0 :(得分:0)

Unix和Windows路径格式之间的内部转换是 由path.cc

中的功能执行

https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/path.cc;h=3cb46c9c812e17460d56def2f915b21c7227f3bf;hb=HEAD

当Cygwin程序执行Windows程序时,生成过程为 由spawn.cc中的功能执行

https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/spawn.cc;h=37db52608e24e866e80401668ef13562f0cb67ea;hb=HEAD

如果您需要更多详细信息或要求澄清,请使用cygwin邮件列表。