**バッチファイル**コマンドラインパラメータを取り込んでバッチファイルを作成しています。しかし、バッチファイルを新しいパラメータで再度実行すると、ファイルは古いパラメータで実行されます。バッチファイルのコマンドラインパラメータを更新する
最初のラン:FILE.BAT -nameハロー400 -r 320
セカンドランを-w:FILE.BAT -nameハロー-w 400
私はファイルの2回目の実行、それはまだ最初の実行を実行する、私はそれがまだ最初の実行からパラメータを考慮すると言うことを意味する。誰がなぜこれが当てはまるのか知っていますか?
ありがとうございます。
バッチファイルのコードを投稿していないのは残念です。下記の がコードです。
set filename=
set rate=
set hidden=
set rate=
:recheck
if "%1"=="-help" goto :help
if "%1"=="-name" goto :filename
if "%1"=="-h" goto :hidden
if "%1"=="-w" goto :weight
if "%1"=="-r" goto :rate
if "%~1"=="" goto :endofcommandline
:filename
shift
set filename =%1
shift
goto :recheck
ファイルの他の部分については、変数「filename」を使用して他の処理を行います。私はまた、ファイルの最初と最後にsetlocalとendlocalを使用します。 私はそれぞれのif文に対応する他のラベルを持っていて、ユーザによって渡された値に異なる変数を設定します。 ある変数の値を表示しようとすると、エコーがオフになることがあります。 私が使用するすべての変数は、上記のようにファイルの先頭でクリアされます。
ようこそStackOverflow。バッチファイルを表示していない場合、どのように世界でどのように問題が起こっているのかわかりますか?私たちはあなたの画面を見たり、ここからあなたの心を読むことはできません。私たちが知っていることは、あなたの質問にあなたが提供するものだけです。もしあなたが私たちに言わなければ、私たちは助けることができません。あなたの質問を編集してバッチコンテンツを提供してください。そうしないと、この質問は「本当の質問ではありません」とかなり早く閉じられるでしょう。あなたは[FAQ](http://stackoverflow.com/faq)を読むことができます。答えを得るチャンスを向上させるために、より良い質問をする方法についての情報があります。ありがとう。 :) –
ところで、最初の実行では実行終了時にクリアされない環境変数が設定されるので、2番目の実行では変更されていない環境変数が継承される可能性があります。 '-r 300'、あなたが与えた例では)。しかし、バッチファイル自体を投稿した方が良いでしょう。 –