次の方法で共有

Windows 10のBAT ファイル

Anonymous
2022-11-04T07:44:34+00:00

お世話になります。

以下のバッチファイル(本当にやりたいことはもっと別ですが単純化して確認)が正常に動作せず困っております。

%%nは1からのカウント
%m%と%l%は、%%nをもとに計算

1回目の実行では、
%%nはカウントアップするけれど%m% %l%は空白

ctrl+cで中断して

2回目以降

%%nはカウントアップするけれど
%m% %l%は、固定値(中断したところの値?)が表示される

やりたいことは、カウントアップしながら自~至のパラメータを変えて別のexeを繰り返し実行したいのですが

カウントアップの段階でうまくいかない状況です。

以下テストバッチファイル

----ここから

@echo off

for /l %%n in (0,1,100) do (

timeout /nobreak 1

SET /a m=%%n+1

SET /a l=%%n+0

echo n = %%n

echo m = %m%

echo l = %l%

)

----ここまで

家庭向け Windows | Windows 10 | PC プロジェクション

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません
質問作成者が受け入れた回答
  1. Anonymous
    2022-11-04T07:54:04+00:00
    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2022-11-04T13:55:01+00:00

    © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2022


    あともう一つ

    call echo m = %%m%%

    call echo l = %%l%%

    %のエスケープ%%

    call で2回目評価

    call call echo l = %%%%l%%%%

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. motosan 3,215 評価のポイント
    2022-11-04T13:41:16+00:00

    Hiroshi Aoyagi様

    質問の for 文は for ... ( から )までが一つのコマンドとなります。

    %m% 等の環境変数はコマンドの実行前に評価されるため、ループの間同じ値になります。

    コマンドプロンプトでset /? でsetコマンドのヘルプを表示すると説明があります。

    また SETLOCAL /? で遅延環境変数の展開についての説明が参照できます。

    これを避けるには以下の2つの方法があります。

    ★方法1

    for 文の内部処理をサブルーチンにする。


    @echo off

    for /l %%n in (0,1,100) do call :SUB %%n

    goto :NEXT

    :SUB

    timeout /nobreak 1

    SET /a m=%1+1

    SET /a l=%1+0

    echo n = %1

    echo m = %m%

    echo l = %l%

    goto :eof

    :NEXT


    ★方法2

    遅延環境変数の展開が有効にした上で!m!のように記述する


    @echo off

    setlocal enabledelayedexpansion

    for /l %%n in (0,1,100) do (

    timeout /nobreak 1

    SET /a m=%%n+1

    SET /a l=%%n+0

    echo n = %%n

    echo m = !m!

    echo l = !l!

    )


    以上ご参考までに

    0 件のコメント コメントはありません
  3. Anonymous
    2022-11-04T08:33:15+00:00

    解決しました
    ありがとうございました

    0 件のコメント コメントはありません
  4. Anonymous
    2022-11-04T08:09:03+00:00

    © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2022


    set/?

    くらいは読んで読んで読んでから質問しましょう。

    0 件のコメント コメントはありません