2

11111111 のような数字と文字のリストと文字を取得しようとしています。数字で計算された文字 si。何かのようなもの:

@echo off
set var=23
FOR /L %%H IN (40000000,1,49999999) DO (
set number = %%H+%var%
echo %number%A
)
pause
exit

手に入れたい(多かれ少なかれ)

400000023A
400000024A
400000025A
...

しかし、FOR文を変更せずに...それは可能ですか?

4

6 に答える 6

3

jeb が述べたことを続けるには、要求された出力に対して、コードは次のようになります。

@echo off & setlocal EnableDelayedExpansion
set var=23
FOR /L %%H IN (40000000,1,49999999) DO (
  set /a number=%%H+!var!
  echo !number!A
)
endlocal
pause
exit
于 2012-09-26T16:04:59.200 に答える
2
  1. setステートメント のあるスペースは避けてください

  2. set / a number = %% H + varを計算する場合は、set/aを使用します

  3. ブロック(およびFORブロック)での拡張率を回避する
    代わりに遅延拡張を使用する(setlocal EnableDelayedExpansionファイルにを追加する)
    echo !number!A

于 2012-09-26T12:44:51.230 に答える
1

jeb はコードを修正するために必要なヒントを提供し、Jeff K は実際に修正を実装しました。

ただし、すべての値に定数を追加するため、FOR /L の開始値と終了値に定数を追加する方が簡単で効率的です。

@echo off
setlocal
set var=23

set /a "start=40000000+var, end=49999999+var"
for /l %%H in (%start%, 1, %end%) do echo %%HA
于 2012-09-27T12:24:46.237 に答える
0

バッチ使用で数値を使用するには

set /a

すべての情報を参照set /?してください。

于 2012-09-26T12:39:25.413 に答える