文字列の部分文字列を作成してcmdで出力しようとしていますが、実行できません。
set p=mnopq
for /L %a in (1,1,5) Do (
set q=%p:~%%a%,1
echo %q%
)
しかし、エラーが発生しています。これのトラブルシューティングを手伝ってください。事前に感謝します..
文字列の部分文字列を作成してcmdで出力しようとしていますが、実行できません。
set p=mnopq
for /L %a in (1,1,5) Do (
set q=%p:~%%a%,1
echo %q%
)
しかし、エラーが発生しています。これのトラブルシューティングを手伝ってください。事前に感謝します..
これには、遅延拡張機能が必要です(使用方法のヘルプをSETLOCAL
参照してください)。cmd /?
期待どおりに動作しない理由は、コマンドに続くfor
コマンドがパラメーターとして扱われるためです。%
そのため、コマンドに使用されるものを除いて、ベース変数はすぐに展開されfor
ます。
修正されたバッチ コマンドは次のとおりです。
@echo off
setlocal enabledelayedexpansion
set p=mnopq
for /L %%a in (1,1,5) Do (
set q=!p:~%%a,1!
echo !q!
)