2017-03-06 43 views
-1

我打電話一個cmd,如:perl的呼之不應管道參數爲可執行

perl ScriptGen.pl Target.c %PreProcessorPath%\preproc.exe Arg1 Arg2 > clean.c 

而且我得到這意味着ARG1和Arg2所得不正確地傳遞到預處理器錯誤。

我想通過將目標文件和預處理程序路徑本身作爲perl腳本的參數來調用此perl腳本,並且Arg1 Arg2是preproc理解的perl腳本的參數。

編輯:有一個

my $cmd = shift @ARGV 

在腳本的begginning來解析參數,然後腳本工作這一點。

+0

也許不是你可以使你的問題較少的困惑/混淆工作?看起來你的期望可能與記載的行爲不同,但我們不知道你的期望是什麼。 – tripleee

+0

@傑克遜:你能解釋一下'perl'文件的參數是這個'target.c'還是'preproc.exe',我們怎樣才能得到'perl'文件的'arg1'&'arg2'。如果你在批處理文件'SET'中運行'PreprocessorPath \ prepoc.exe'的'PATH'和相同的''''''''''''''參數'Arg1'和'Arg2'。怎麼可能。 – ssr1012

+0

該命令中沒有管道 – Borodin

回答

2

這是我的建議:

可以使用batchfile而是採用單線幾個參數與applications;

創建一個批處理文件 - scriptgen.bat

SETPATH=%PATH%;%PreProcessorPath%\preproc.exe 
call preproc.exe %1 %2 
rem %1 = Arg1 %2 = Arg1 %3 = Target.c 
perl -w ScriptGen.pl %3 %1 %2 > clean.c 

在MS-DOS提示符下運行:

scriptgen.bat Arg1 Arg2 Arg3