問題タブ [delayedvariableexpansion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
84 参照

batch-file - スクリプト作成 - 遅延拡張 - for ループの外側

For ループの外で変数を使用しようとしています。ループ内のエコーは、期待どおりの結果をもたらします。ループの外側で変数をエコーすると機能しません。以下はスクリプトです-

0 投票する
3 に答える
183 参照

batch-file - %1 を使用した 2 つの for ループ - 展開の遅延?

私の作業用バッチ ファイルは、リモート サーバーの長いリストをスキャンし、そこにあるものをすべてローカル サーバーにコピーし、ログ ファイルでキーワードをチェックし、キーワードが見つかった場合は電子メールを送信します。ログファイルが空の場合でも、常にメールを送信していることに気付きました。

FOR両方のループが%1出力に変数を使用していることを発見しましECHO %1:servermove。より良い説明がない%1ため、ループ間で null にリセットされません。

SETLOCAL ENABLEDELAYEDEXPANSION私はほぼ十数の SO 投稿を確認しましたが、これを使用するとこれが解決すると確信しています。それが私の理解の終わりであり、これまでのところ私は成功していません。

関連するコードは次のとおりです。

:mailtest両方のインスタンスで使用するように変更しようとしまし%%Bたが、それも失敗します。どちらか一方のループの前にSETLOCAL ENABLEDELAYEDEXPANSIONとその対応物を配置し、 toを変更しても機能しません。ENDLOCAL%%A!A!

誰かが私のやり方の誤りを親切に指摘し、これを解決するのに役立つ提案やリソースを提供してくれませんか?

0 投票する
1 に答える
4163 参照

windows - Windows バッチ: 変数内の変数を持つブロックの場合

変数 Variable を作成したい。つまり、 Var 1、 Var 2、 Var 3、 Var 4などの変数名を持つ多くの変数を作成したいということです。これは機能しますが (以下を参照)、-Loop内での単一処理のために使用する必要があり、正しく解釈されなかったため、 ing は機能しませんでした。ECHOEnableDelayedExpansionFOR!var%num%!

だからここに私が持っているものがあります:

数時間後、これCALLは echo の前で -Routineを使用して機能するようになりました

皆さんへの私の質問は、今どのように作るかです

少しいい。初めてみた

しかし、これは単一のFORループにあるため失敗します。これをより良くする機会はありますCALLINGか?

事前にありがとうパトリック

0 投票する
1 に答える
8026 参照

windows - 変数が期待どおりに動作しない

私はこのバッチ ファイルの構文を正しくしようと格闘してきましたが、一部が機能しない理由がわかりません。

  1. 変数iは、実行するたびにインクリメントされません。
  2. 連結 onは連結してstrcいないようです。

これが私のコードです:

0 投票する
1 に答える
194 参照

batch-file - 遅延変数展開を引数として渡すバッチ ファイル

別の変数の名前を含むバッチ変数があります。変数に対して a を実行するCALL ECHOと、期待どおりの出力が得られます。ただし、CALL ECHOコマンドの出力を引数として別のコマンドにパイプしようとすると、問題が発生します。これは私が試みているものです:

引数を使用して直接呼び出されたかのように、遅延変数展開を使用して myCmd を呼び出す方法を知っている人はいますか?

これを実行しようとしている理由は、myCmd を複数回呼び出す必要があるためです。変更されるのは文字列 "Bar" だけです。これは、3 つの変数 (myCmdPre、myInnerVar、および myCmdPost) を使用して、変数の展開を遅らせることなく実行できることを知っています。%myCmdPre%%myInnerVar%%myCmdPost%ただし、 myCmd を実行するたびに入力する必要なく、目標を達成する別の (より簡潔な) 方法が必要なようです。

編集

明確にするために、myCmd.bat という同じディレクトリに次の内容の 2 つ目のバッチ ファイルを作成しました。

サンプル バッチ ファイルを実行すると、次のような出力が生成されます。

myCmd には何もパイプされていないかのようです。

0 投票する
1 に答える
475 参照

batch-file - if ループ内で変数を割り当てる: Windows Bat スクリプト

私はバットスクリプトを書こうとしていて、次の問題に直面しました。

以下は、問題が処理されるスニペットです。

このバット スクリプトの出力は次のとおりです。

fileName のエコーに値2genがあることを期待していますが、まだ印刷中ですnil

私の最初の試みでは、setlocal enabledelayedexpansion enableextensionsand を使用しませんでした!fileName!(代わりに を使用しました%fileName%)

ソリューションを検索した後、遅延拡張が有効になりました。しかし、正確な間違いが何であるかはまだわかりません。

また、使用しているOSのバージョンはWindows 7 64 bit

間違いを指摘するのを手伝ってください。

ありがとう!

0 投票する
2 に答える
44 参照

variables - Batch: カウントループで使える変数定義

私のバッチでは、可変量のソースをターゲット宛先にコピーしたいと考えています。

私は次のように定義したい:

定義された量のフォルダーに依存

ループ内のフォルダーを調べたい:

見せたら

source1、source2など、期待どおりの結果が得られますが、

提供するだけ

ソース1

期待値の代わりに

「C:\フォルダ1」

DelayedExpansion を使用してこれを解決できると思いましたが、何が欠けていましたか?

0 投票する
1 に答える
53 参照

windows - 部分文字列操作内の遅延変数展開

0 投票する
2 に答える
79 参照

batch-file - 引数プラス1を処理する引数を取得するバッチスクリプト

現在の引数と比較する次の引数を取得できるようにしたい。したがって、argVec が「--define」に等しい場合、次の引数をエコーし​​たいのです。「配達」ではなく「y」という結果が得られます。

私の入力は次のとおりです。Cmd version version1 --define delivery

0 投票する
2 に答える
168 参照

windows - 感嘆符 (!) が CMD %CD% 出力から削除されました

Windows CMD シェルは!、ディレクトリ名から " " 文字を取り除いています。

現在の作業ディレクトリが " C:\\!MyFolder"であると仮定します

.CMD ファイル内では、次の構文を使用します。

C:\MyFolderバンバン(!)なしで表示されます

これは WinXP から Win8.1 まで共通です。

Q: これに対する回避策を知っている人はいますか?