2013-02-11 45 views
0

我想在批處理文件中使用perl,然後退出perl並繼續處理批處理代碼。一個小例子,我想實現:在批處理文件中臨時使用perl

perl do something 
echo hello 
pause 
+1

是什麼阻止你做了嗎? – TLP 2013-02-11 17:33:00

+0

對不起,現在沒關係......我以前的嘗試不成功。 – leaf 2013-02-11 17:38:12

+2

如果您成功了,請在下面發佈您的答案並接受它。其他人可能有同樣的問題 – 2013-02-11 17:42:12

回答

4

如果安裝Perl的,應該沒有問題:

perl -e "print $_ for 1 .. 10" 
perl script.pl 

您可能需要指定perl和script.pl的完整路徑。

+0

我想我已經忘記了「一行程序」的選項「e」。謝謝大家。 – leaf 2013-02-12 08:48:19

4
@echo off 
perl script.pl 
echo hello 
pause 

@echo off 
perl -e" ...code..." 
echo hello 
pause 
0

反之亦然。即來自perl的呼叫批量命令

my $cmd = 'some command'; 
if (system $cmd) { 
    print "Error: $? for command $cmd" 
} 

保存此perl腳本。這也應該做你的工作。

1

也許我只是讀它錯了,但我解釋了問題是問如何將perl腳本直接嵌入批處理文件。

Activeperl將其中一堆作爲.cmd文件添加,並且cpan上有一個tool用於從您的perl腳本創建它們。

我還從快速搜索中找到了兩個examples,這似乎將這個想法擴展了一點點。它們允許您將代碼放入相同的文件中,並在perl調用之前和之後運行dos命令,這正是我認爲您所要求的。

這裏有一個例子:

@rem = 'Perl, ccperl will read this as an array of assignment & skip this block 
@CD /d "%~dp0" 
@perl -s "%~nx0" %* 
@FOR /L %%c in (4,-1,1) do @(TITLE %~nx0 - %%cs to close & ping -n 2 -w 1000 127.0.0.1 NUL) 
@TITLE Press any key to close the window&ECHO.&GOTO:EOF 
@rem '; 

#perl script starts below here 
print 'Hi there! DOS rocks!\n' 
相關問題