アプリ版:「スタンプのみでお礼する」機能のリリースについて

Windowsのバッチ処理(パワーシェルだからシェルスクリプト風?)についてお尋ねします。

以下はループ処理です。%%iというところがループカウンタで%%iは整数です。この例では1から10です。

for /L %%i in (1,1,10) do (
ここでいろいろ処理
)

ここで質問ですが、整数とは1,2,3,...10ですが、01,02,03,....10のように2カラムを使うものとして利用することは可能でしょうか。
3桁だったら、001,002,,,100 のように変化していくようなものですが。文字列のような整数のような位置づけはよくわからないのですが。
バッチ内部は変数に型がないようです。フォーマット指定のような印象なのですが。よろしくお願いします。

A 回答 (3件)

回答は他の方の通りだと思いますし、フォーマット指定とかの話しでもないのですが、繰り返しが少なければ単に書き連ねたりもしますね。


> for %i in (01 02 03) do @echo %i
表示:
01
02
03
    • good
    • 0
この回答へのお礼

回答ありがとうございます。100越えもあり、書き連ね作戦はちょっと、厳しい感じがします。また、この辺の仕組みが分かれば他のへの応用も効くと思ったのでお尋ねしました。

お礼日時:2022/02/22 16:52

ん?


https://jj-blues.com/cms/wantto-fill00/
これですか?
    • good
    • 0

01 や 001 のようなものは、「ゼロ埋め」と検索すれば出てくると思います。



こんな感じでやるみたいです。

set num=0%%i
set num=!num:~-2,2!
echo !num!

あたまに0を足し、後ろの2文字を表示する。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。詳細に検討させていただきます。
ルールの集合体なので理屈で覚えるのではないと思います。どこかにルールブックがあるのかなと思いますが。
-----
set num=0%%i

これはループカウンタ%%iという整数の先頭に1つ0を足してnumに保存するということですね。
0を2個つけて001としたい場合はどうすればいいでしょうか。また10だったら010と0を1つ足しますね。
つまり整数の桁によって足す0が異なると思いますが、整数の桁数によって set num=00%%i、だったりset num=0%%iだったりするわけでif文ということになるでしょうか。

-----
set num=!num:~-2,2!

これは! !ではさんでいるということでしょうか。実体は! !で挟まれている中でその結果をnumで受け取るという風に見えます。

またこれは後ろの2文字を表示する、すなわち1→01となり後ろの2文字01を表示するということでしょうか。
また、1→001として後ろの3文字(001)を表示したり、10→010として後ろの3文字(010)と言う場合、
set num=!num:~-3,3! でいいのでしょうか

さらに0だったり00だったりするための整数の桁の検出方法はどうでしょうか。(上と同じ質問になりましたが)

-----
echo !num!

echo numとはどう違うのでしょうか。! !で挟むのは"num"ぐらいの意味なのでしょうか。

お礼日時:2022/02/22 17:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!