問題タブ [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.
batch-file - ない "!" EnableDelayedExpansion 時の文字列
スクリプトで DelayedExpansion を有効にすると、ファイル名の文字列「 ! 」がエコーされません。例えば:
元
のファイル01-TEXT!.txt
File01-TEXT.txt をエコーアウトする
のせいだと思いますがsetlocal EnableDelayedExpansion
、必要なので削除できません。
batch-file - ループが期待どおりに実行されないのはなぜですか?
私は次のようなフォルダを持っていますE:\Backups\code\Hazard\test1
...testn
そして、これらのテストフォルダー内には、次のようなものがありE:\Backups\code\Hazard\test1\it0
ます...itn
ルート フォルダーはE:\Backups\code
、コードが実行される場所です。
summary.yml
以下のコードは、各サブフォルダーで実行され、フォルダーからit0
最新のフォルダーにコピーされit(n)
ます。
コードがtest1
フォルダーに対してのみ実行され、ハングするのはなぜですか?
batch-file - バッチスクリプトで値を処理するためにdelayedexpansionを使用する方法
バッチ スクリプトで CSV ファイルの内容を読み取る際に問題が発生しています。と言う一連のファイルがありますMy_A_File.csv, My_B_File.csv ... My_Z_File.csv
。私が直面していた問題は、それらの特殊文字を読み取ることです。したがって、delayedexpansion をオフにして値を読み取りたいと考えました。
遅延拡張が無効になっているブロックの値を読み取ると、値が空です! どうすればこれを処理できますか?
脚本:
出力:
batch-file - 遅延展開の使用時に If ステートメントが無視される
2 つのバッチ ファイルがあり、最初のファイルの名前を 1 つの名前に変更し、2 番目のファイルの名前を別の名前に変更します。変数が Y に設定され、if ステートメントで変数に対して遅延展開が使用されます。このコードは、SOURCE の場所から 2 つのファイルを読み取り、SOURCE の場所とファイル名を txt ファイルに配置します。したがって、ファイルは次のようになります。 \servername\Reports\531627.REPORT.CSV \servername\Reports\531638.REPORT.CSV 次に、コードはテキスト ファイルをループし、最初のファイルをコピーして名前を REPORTLST に変更し、次に 2 番目のファイルに名前を変更します。 REPORTASTに。何が起こっているのかというと、if ステートメントが無視されているようなものです。FIRSTFILE 変数を出力して Y であることを確認しましたが、最初のファイルがコピーされたり名前が変更されたりすることはありません。コードは次のとおりです。
そして、ここに印刷されたものがあります:
したがって、常に ELSE に移行していることがわかりますが、何が問題なのかわかりません。何か案は?
json - JSON フォーマット バッチの不要なコンマを削除する
パッチのリストを JSON 形式で出力しようとしています。
しかし、これは私が得ているものです:
これは私のコードです
最初のfor
ループでは、コマンド出力から受け取った各パッチに配列パッチを設定しています。その後、配列内の各要素を読み取って順番に出力しようとしています。
* ここでは、最初の要素を正しく出力します。しかし、それを置き換えると
それは私に空の変数を与えます。
別の変数内で変数を渡すにはどうすればよいですか?
loops - バッチ ファイル ENABLEDELAYEDEXPANSION が変数を書き出さない
変数をテキスト ファイルに出力する以下のコード スニペットがあります。
%drone%
は単純なテキスト文字列になり、%counter%
繰り返しをカウントするためにループ内にある数値です。
echo %drone% !counter!
正しい値が画面にエコーされますが、コードecho Done: %drone% Files deleted: !tempcounter! >> clearTempFilesonDrones.txt
では、!tempcounter!
変数はファイルに出力されるときに空白になります。
一時変数に設定して使用しようとしましたが、うまくいきませ%tempvariable%
んでした。"!counter!"
また、それが単なる数字ではなく文字列であると思われる場合に備えて試してみましたが、どちらも機能しませんでした。
何か案は?
現在のクライアントでブロックされているため、コード全体をペーストビンなどにコピーできないため、抜粋をアップロードしました。