14

さて、「lib.cmd」というファイルが含まれているとしましょう

@echo off
GOTO:EXIT

:FUNCTION
     echo something
GOTO:EOF

:EXIT
exit /b

次に、「init.cmd」というファイルが含まれています

@echo off

call lib.cmd

init.cmd 内の :FUNCTION にアクセスする方法はありますか? bashが「ソース」を使用する方法と同様に、別のbashファイルを同じプロセスで実行します。

4

3 に答える 3

21

次のように変更lib.cmdします。

@echo off
call:%~1
goto exit

:function
     echo something
goto:eof

:exit
exit /b

次に、バッチ ファイル ( ) に渡された最初の引数は、%~1呼び出したい関数として識別されるため、 で呼び出され、次の方法でcall:%~1呼び出すことができます。init.cmd

call lib.cmd function
于 2013-11-05T21:00:03.687 に答える
4
@echo off

(
rem Switch the context to the library file
ren init.cmd main.cmd
ren lib.cmd init.cmd
rem From this line on, you may call any function in lib.cmd,
rem but NOT in original init.cmd:
call :FUNCTION

rem Switch the context back to original file
ren init.cmd lib.cmd
ren main.cmd init.cmd
)

詳細については、すべての関数をバッチ ファイルに個別のファイルとしてパッケージ化する方法を参照してください。

于 2013-11-05T23:33:00.407 に答える