2
特定のディレクトリのすべてのjarファイルを使用してクラスパスを設定する必要があります。次のようにbashはそれをしない:forループで設定すると、バッチスクリプトで変数を保存するにはどうすればよいですか?
CP_DELIMITER=;
for j in "$MY_HOME/javalib/*.jar"; do
if [ "$CP" ]; then
CP="$CP$CP_DELIMITER$j"
else
CP="$j"
fi
done
をしかし、「for
は」DOSで異なる動作をし、基本的にシェルにコマンドを送信しますが、変数
set CP=./
for %%j in (%MY_HOME%\javalib\*.jar) do (
set $CP=%CP%;"%%j"
)
の「設定」を保存しません。 forの外側に$CP
を入力すると、最後のjarファイルのみが取得されます。内部にエコーすると、%%j
にすべての値が含まれていることがわかります。
誰も解決策を見つけましたか?
あなたがCMD.EXE /V
で
遅れた環境変数の展開を有効にして
!VAR!
を使用する必要があります
素晴らしい作品と、コマンドラインで/ Vの代わりには、次のとおりです。 SETLOCAL ENABLEDELAYEDEXPANSION –