在会话中执行文件后,请查看以下示例批处理文件和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.
是否也可以使用批处理文件来实现相同的功能。
答案 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中。