未将环境变量传递给CruiseControl,特别是';nodosfilewarnings';来自Cygwin的ENV变量

未将环境变量传递给CruiseControl,特别是';nodosfilewarnings';来自Cygwin的ENV变量,cygwin,windows-server-2008,cruisecontrol.net,Cygwin,Windows Server 2008,Cruisecontrol.net,我有一个其他人创建的Perl程序,我正在用CruiseControl调用它。该程序使用Cygwin调用Unix命令。但是,每当Perl程序调用类Unix命令和类DOS地址时,我都会遇到一个众所周知的错误: cygwin warning: MS-DOS style path detected: E:\regression Preferred POSIX equivalent is: /cygdrive/e/regression CYGWIN environment variabl

我有一个其他人创建的Perl程序,我正在用CruiseControl调用它。该程序使用Cygwin调用Unix命令。但是,每当Perl程序调用类Unix命令和类DOS地址时,我都会遇到一个众所周知的错误:

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系统变量来解决
  • 是否可以修改注册表以设置环境变量

事先谢谢你

我是这样做的

printf'export CYGWIN=nodosfilewarning'>>~/.bash\u配置文件

我是这样做的

printf'export CYGWIN=nodosfilewarning'>>~/.bash\u配置文件

如果CruiseControl通过ssh连接到服务器,请重新安装
sshd
,并在安装过程中提示输入
CYGWIN
环境变量时明确包含
nodosfilewarning

如果CruiseControl通过ssh连接到服务器,重新安装
sshd
,并在安装过程中提示输入
CYGWIN
环境变量时显式包括
nodosfilewarning

使用修改后的环境重新安装将起作用,但如果您不想或无法重新安装,另一种方法是更改注册表,而不是重新安装服务


请参阅:

使用修改后的环境重新安装将起作用,但如果您不想或无法重新安装,另一种方法是更改注册表,而不是重新安装服务


请参阅:

“…从批处理文件调用CruiseControl时,仍然会发生错误”:您可以在批处理文件中显式设置变量吗?确实如此。在调用CruiseControl之前以及在脚本开始时(我能够掌握该脚本),我从批处理脚本中设置了ENV变量。显然CYGWIN想直接观察系统变量。。。?至少很多论坛都这么说,我在我的机器上发现了一个名为
%HOME%
的变量,它指向一个目录,cygwin可以将其用作我的用户主目录。在该目录中有一个名为
.bash\u profile
的文件,我在其中设置了cygwin环境变量:
导出\u变量=thevalue
。您可能会尝试查找您的
.bash\u配置文件
导出
,就像这样。“…当从批处理文件调用CruiseControl时,仍然会发生错误”:您可以在批处理文件中显式设置变量吗?确实如此。在调用CruiseControl之前以及在脚本开始时(我能够掌握该脚本),我从批处理脚本中设置了ENV变量。显然CYGWIN想直接观察系统变量。。。?至少很多论坛都这么说,我在我的机器上发现了一个名为
%HOME%
的变量,它指向一个目录,cygwin可以将其用作我的用户主目录。在该目录中有一个名为
.bash\u profile
的文件,我在其中设置了cygwin环境变量:
导出\u变量=thevalue
。您可能会尝试查找您的
.bash\u配置文件
导出
。尝试过这样做,但Cygwin/Windows似乎在某些情况下忽略了bashrc文件(这就是其中之一)。我一次又一次看到的是将其添加到ENV系统变量中,尽管如此,但似乎Cygwin/Windows在某些情况下忽略了bashrc文件(这就是其中之一)。我一次又一次看到的是将其添加到ENV系统变量中