【问题标题】:Perl chdir doesn't workPerl chdir 不起作用
【发布时间】:2012-08-17 21:57:30
【问题描述】:

以前的帖子可能有用:Perl system() call failed with return code 65280

再次,我多次使用此代码,但在这里不起作用。我已经从 PATH 中移动了所有其他 perl 实例。

来源:

$targetDir = "M\:\\bldforge_AOMS_DEV";
print ("targetDir=$targetDir\n");

chdir($targetDir) or die "Cant chdir to $dir $!";
$current_dir = `cd`;
print "\nCurrent dir = $current_dir\n" 

输出:

Z:\>ccperl test.pl
targetDir=M:\bldforge_AOMS_DEV

Current dir =

【问题讨论】:

标签: windows perl chdir


【解决方案1】:

为了确保您确实处于 ClearCase 视图中,我会使用 cleartool pwd

$current_dir = `cleartool pwd`;

即使在 Windows 上也可以使用:

cleartool pwd 命令列出当前工作目录。
此命令适用于交互式 cleartool 和 multitool 会话,以及模拟交互式会话的批处理文件或 shell 脚本。

【讨论】:

  • 好主意。无论如何,事实证明这是另一个路径问题。在运行 BuildForge 脚本之前,我运行了一个巨大的 .bat 文件来设置环境。不知何故,这条路是不对的。一旦我从当前 CMD 窗口复制了路径。它解决了。再次感谢!
【解决方案2】:

您将pwdcd 混淆了。 cd 仅打印到 STDERR,即它静默成功。

我的意思是 cd 在你的情况下没有用。

【讨论】:

  • 在 Windows XP 上完全不是这样
  • C:\>perl -e "print 'cd='.`cd`" 打印 cd=C:\
  • 这是提问的好地方!回复这么快,网上这么多人。它是如何工作的?
【解决方案3】:

要获取当前工作目录,您应该使用Cwdgetdcwd 函数:

use Cwd;

my $current_dir = getdcwd 'M:';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多