問題タブ [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 - バッチファイルを使用して文字列(ファイル名)から特定の部分を抽出します
現在のディレクトリにあるすべてのファイル名 (pdf ファイル) の一部を抽出しようとしています。
ファイル名の長さは、常に 16 文字である最後の部分 (日時と拡張子) を除いて異なります。残りの部分は常に異なる長さになります。私が必要とする部分でさえ、長さが異なる場合があります。
こちらで取得したlastIndexOf関数を使ってみました。
ファイル名 例:academyo-nonpo - 2582365-082416051750.pdf
太字のセクションを抽出したい。最初に最後の 17 文字をトリミングしてみました (この部分は常に固定長になります)。次に、'-' の最後のインデックスを取得しようとしました (最初の部分は可変長の文字を持つことができるため)。その位置まで文字をトリミングします。 、ファイル名の必要な部分を返す必要があります。
3 番目のパラメーターとして関数に渡された変数の参照は、必要な値を返していないようです。ここで何が悪いのかわかりません。
string - Windows コマンドで set を使用して文字列値をループする
私の Windows バッチ ファイルは、ファイル名を読み取り、ファイル名の 2 番目から 5 番目の文字に従って名前が付けられたディレクトリを作成することになっています。
ただし、'string' の値は更新されません。つまり、ループの各ステップで同じです。どうすれば更新できますか?
これはコマンド出力です:
batch-file - バッチファイルで配列を使用するには?
PC の NIC 名を変更しようとしています。多くのNICがあります(それらは仮想です)。私はそのように彼らの名前を得ることができます
そのループ内で netsh を使用して名前を変更したいと思います。残念ながら、ターゲット名は単純な増分番号ではありません。だから私はやった
これは出力します
でもやってみたら
ガベージ出力が得られます。前の例で生成された文字列を変数として評価する方法はありますか? 次に、それを netsh に渡して名前を変更できます。
windows - for ループを変更して、バッチ スクリプトでdelayedexpansionを使用しないようにします
for..do
ループの構文と%%
変数の使用を理解するための私の努力。for
1 つのループが使用されずDELAYEDEXPANSION
、別のループが表記法で使用される 2 つの特定の例/実装を経験しましDELAYEDEXPANSION
た。!
最初の for ループは、Windows XP などの古い OS と互換性があるように見えますが、2 番目の for ループの例は互換性がありません。
具体的には、1 番目の for ループの例は this answer (これに関連する) から取得され、2 番目の for ループの例は this answerから取得されます。
以下にコピーされた両方の例の変更されたコード:
1 番目の for ループ
2 番目の for ループ
遅延展開 (または表記) が古い OS (Windows XP など) と互換性がないという問題を読んで見ているので、1 番目のループのように 2 番目のループを記述する方法を!
確認したいと思います。つまり、 を使用しませんDELAYEDEXPANSION
。