0
私はこのバッチスクリプトでエラーがどこにあるのかを理解するために頭を痛めつけています。関数 "pow"の再帰によって与えられた数のpowを計算するのに使用されます。私の得たエラーは: "order1"は、内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。 "base22"は、内部または外部コマンド、実行可能プログラムまたはバッチファイルとして認識されません。 両方のエラーは、「バッチ再帰がスタック制限を超えています」というステートメントが再帰を停止するまで、何度もシーケンス行に表示されます。 誰かがスクリプトでエラーを見つけることができますか?powを計算する再帰バッチスクリプト
@echo off
set /a base1=3
set /a base2=3
set /a order=3
call :pow %base1%, %base2%, %order%
EXIT /B %ERRORLEVEL%
:pow
set /a base11=%~1
set /a base22=%~2
set /a order1=%~3
order1=order1-1
base22=base11*base22
if %order1% GTR 0 (call :pow %base11%, %base22%, %order1%)
else(echo the calculated pow is %base22%)
EXIT /B 0
@pjs実際には、コマンドの一部として 'SET/A'が欠けています。 'SET/A'を使うときは、変数のパーセント記号は必要ありません。 – Squashman
@Squashmanありがとう。シェルスクリプトにもっと慣れていますが、13行目と14行目は確かに私には疑わしいものでした。 – pjs
WOPRの場合、「IF ELSE」の構文が正しくありません。 cmdプロンプトを開き、「IF /?」と入力します。 IF ELSEを使用するための正しい構文を表示します。 – Squashman