4

a.batで

if ... set a.b=1
...
set c=%%~!a.b!

echo %c% が出力さ%~1れますが、%~1 の内容が必要です。しかしset c=%~!a.b!、「バッチ パラメータ置換でのパス演算子の次の使用法は無効です: %~!ab!」という結果になります。直し方?

4

1 に答える 1

4


パーセント展開はパーサーの最初のフェーズの1つであるため、評価された式を使用してパラメーターに直接アクセスすることはできません。

しかし、CALLトリックはここであなたを助けることができます。
何かのようなもの

set paramNo=1
call echo %%~%paramNo%

が最初に展開され call echo %%~1
CALLパーサーが再起動されるため、目的の結果が得られます。

于 2012-04-20T07:47:06.203 に答える