0

与えられたバッチ ファイルを編集していますが、次のコード行が何をするのかわかりません。

set allKeys=%allKeys% !currentKey!

ありがとう!

4

3 に答える 3

0

遅延拡張とは何かを説明するに、 と入力してSET /?ください。

于 2013-08-27T11:47:14.480 に答える
0

currentkeyスペースの後に変数のランタイム値を解析時の値に追加し、提供された -allkeysのランタイム値が呼び出されると結果を割り当てます。が呼び出されない場合、変数の値ではなく文字列を追加します。allkeysdelayedexpansiondelayedexpansion!currentKey!currentkey

コンテキスト情報がなければ、それ以上のことを推測しています...

于 2013-06-13T15:00:42.597 に答える
0

試すコードの例を次に示します。

allkeys は for in do ループの外で設定されます。

for in do ループ内で変更されますが、%allkeys% を使用するため、変更は累積されません。

@echo off
setlocal enabledelayedexpansion
set allkeys=one
for %%a in (two three four five six) do (
set currentkey=%%a
set allKeys=%allKeys% !currentKey!
echo allkeys is now "!allkeys!"
)
echo allkeys is now "%allkeys%" outside the loop
pause

この行 set allKeys=%allKeys% !currentKey! をこれに変更して実行し、違いを確認してください。

set allKeys=!allKeys! !currentKey!
于 2013-06-13T15:22:25.490 に答える