2012-08-17 77 views
2

一前一後可能是有用的:Perl system() call failed with return code 65280Perl的CHDIR不起作用

同樣,我用這個代碼很多次,但它不會在這裏工作。我已經從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 = 
+0

廠('perl')在我結束 - 什麼是'ccperl'? – zb226 2012-08-17 13:38:31

+0

@ zb226:看到我對user1288329的回答:http://stackoverflow.com/a/11992799/6309。這是關於ClearCase(http://stackoverflow.com/tags/clearcase/info) – VonC 2012-08-17 13:45:11

回答

2

要確保你確實是在ClearCase視圖,我會用cleartool pwd

$current_dir = `cleartool pwd`; 

,將工作即使在Windows:

cleartool pwd命令列出當前工作目錄。
此命令適用於交互式cleartool和multitool會話以及模擬交互式會話的批處理文件或shell腳本。

+0

好主意。無論如何,這是另一個路徑問題。在運行BuildForge腳本之前,我運行了一個巨大的.bat文件來設置環境。不知何故,路徑不對。一旦我從當前CMD窗口複製路徑。它解決了。再次感謝! – user1288329 2012-08-17 14:29:01

0

您在混合pwdcdcd只能打印到STDERR,即它靜默地成功。

我的意思是,cd是沒有用的在你的情況。

+0

在Windows XP上並非如此 – DVK 2012-08-17 13:44:55

+0

C:\> perl -e「print」cd ='。\'cd \''''打印'cd = C:\' – DVK 2012-08-17 13:45:53

+0

這是提問的好地方!答覆如此之快,許多人在線。它是如何工作的? – user1288329 2012-08-17 14:32:15

0

爲了得到當前工作目錄,你應該使用Cwdgetdcwd功能:

use Cwd; 

my $current_dir = getdcwd 'M:'; 
+0

這也適用。謝謝。 – user1288329 2012-08-17 14:31:14