a.batで
if ... set a.b=1
...
set c=%%~!a.b!
echo %c% が出力さ%~1
れますが、%~1 の内容が必要です。しかしset c=%~!a.b!
、「バッチ パラメータ置換でのパス演算子の次の使用法は無効です: %~!ab!」という結果になります。直し方?
a.batで
if ... set a.b=1
...
set c=%%~!a.b!
echo %c% が出力さ%~1
れますが、%~1 の内容が必要です。しかしset c=%~!a.b!
、「バッチ パラメータ置換でのパス演算子の次の使用法は無効です: %~!ab!」という結果になります。直し方?
パーセント展開はパーサーの最初のフェーズの1つであるため、評価された式を使用してパラメーターに直接アクセスすることはできません。
しかし、CALLトリックはここであなたを助けることができます。
何かのようなもの
set paramNo=1
call echo %%~%paramNo%
が最初に展開され
call echo %%~1
、CALL
パーサーが再起動されるため、目的の結果が得られます。