【发布时间】:2012-04-30 23:00:38
【问题描述】:
我有一个别人创建的 Perl 程序,我正在调用 CruiseControl。该程序使用 Cygwin 调用 Unix 命令。但是,每次 Perl 程序使用类似 DOS 的地址调用类似 Unix 的命令时,我都会收到众所周知的错误:
cygwin warning:
MS-DOS style path detected: E:\regression
Preferred POSIX equivalent is: /cygdrive/e/regression
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
我已将用户变量和系统变量CYGWIN 都设置为nodosfilewarning。当我从命令行运行程序时,这消除了错误,但是当从批处理文件作为自动化进程调用时,CruiseControl 中仍然会出现错误。我已经从桌面和命令行调用了批处理文件并以管理员身份运行。没有任何变化。
其他说明
- 出于此问题的目的,我无权访问 Perl 程序
- 我正在尝试返回 Cygwin 1.5.*,但由于我使用的是 Server 2008,因此遇到了兼容性问题
- 这发生在其中一台分布式服务器上,而不是运行 Webdashboard 的主服务器上。
- 我在某处读到此问题可能源于调用 CruiseControl 的其他用户,但问题应该已通过将其设置为 ENV 系统变量来解决
- 是否可以修改寄存器来设置 ENV 变量?
提前谢谢你
【问题讨论】:
-
“...当从批处理文件中调用...时,CruiseControl 中仍然会出现错误”:您可以在批处理文件中显式设置变量吗?
-
做到了。我在调用 CruiseControl 之前和脚本的开头(我能够掌握)从批处理脚本中设置 ENV 变量。显然 CYGWIN 想直接查看系统变量...?至少这是我发现的许多论坛所说的
-
在我的机器上,我有一个名为
%HOME%的变量,它指向一个供cygwin 用作我的用户主目录的目录。在该目录中有一个名为.bash_profile的文件,我在其中设置了 cygwin 环境变量:export the_variable=thevalue。您可以尝试像这样找到您的.bash_profile和export。
标签: cygwin windows-server-2008 cruisecontrol.net