2017-07-24 68 views
1

我有一個批處理文件,幷包含兩個perl的譯碼,併爲例:我如何通過從其他perl腳本的輸入在批處理文件

MyBatchfile:

rem This perl coding input is Filename output as an number. 
perl -w E:\Testing\PerlFile_1.pl %1 

需要保存數目,併產生與第二個腳本的輸入相同。

rem This perl coding input is as number from the previous perl script. 
perl -w E:\Testing\PerlFile_2.pl %1 

如何將輸出(Number)從第一個腳本傳遞到第二個腳本作爲輸入。

+2

https://stackoverflow.com/questions/2323292/windows-batch-assign-output-of-a-program-to-a-variable – xxfelixxx

+5

可能重複的[Windows批處理分配輸出到一個變量的程序] (https://stackoverflow.com/questions/2323292/windows-batch-assign-output-of-a-program-to-a-variable) – geisterfurz007

+0

我不明白從上面的鏈接,因爲我是批處理文件編程新手。 – ssr1012

回答

2

可以使用獲得的命令的輸出:

for /f "delims=" %%p in ('myCommand goes here') do (
set myVar=%%p 
) 

REM here myVar has the output of the command issued in the above loop 
REM assuming that %1 represents the paramter here, I replaced it with the variable above 
perl -w E:\Testing\PerlFile_2.pl %myVar% 

for /f在批次用於解析該文件(in (filename.extension)),一個字符串(in ("myString"))或命令輸出(in ('myCommand'))的任一內容。請注意用於確定使用哪一個的報價中的差異。
%%p是循環參數,將保存當前迭代的值。這將是你的情況的價值。但是,因爲這隻會在循環中存在,所以我們將它保存到一個變量中供以後使用。

+0

'FOR/F 「delims =」 %%的P( 「perl的-w myscript1.pl%1」)DO(設置myVar的= %% P) perl的-w myscript2.pl%myVar的% echo' – ssr1012

+0

我試圖根據你的意見..請檢查這個正確與否...? – ssr1012

+1

不是不是。請注意我在'for/f':[[]]或命令輸出('in('myCommand')')的解釋中提到的內容)「您必須使用單引號。而且我不知道最後的迴音是什麼^^ – geisterfurz007

相關問題