将批处理文件方法称为命令

时间:2017-02-02 16:44:53

标签: shell batch-file

在会话中执行文件后,请查看以下示例批处理文件和sh文件,其中包含我想要作为命令调用的方法: -

test.bat: -

goto:eof

::--------------------------------------------------------
::-- Function section starts below here
::--------------------------------------------------------

::-- testa starts here

:testa

echo "This is testa"

goto:eof

::-- testa ends here

::-- testb starts here

:testb

echo "This is testb"

goto:eof

::-- testb ends here

test.sh: -

function testa(){
    echo "this is testa"
}

function testb(){
    echo "this is testb"
}

对于sh文件,我可以从命令行调用该方法,但对于批处理文件,它无法正常工作,并给出以下错误: -

'testa' is not recognized as an internal or external command,
operable program or batch file.

是否也可以使用批处理文件来实现相同的功能。

PFA截图。enter image description here

1 个答案:

答案 0 :(得分:0)

因为它是test.bat中的子程序通常不能从外部到达。但有一个feature有人称之为bug,允许从另一个批次访问。

:: Other.bat
@Echo off
Call :testa any number args
Call :testb 
Goto :eof
:testa this only a stub
:testb 
test.bat %*

如果test.bat位于同一个文件夹中,或者通过Path中包含的文件夹可以访问,other.bat的执行将显示:

> other.bat
"This is testa"
"This is testb"

您期望的功能定义不是批量生产,而是在PowerShell中。