傾けるかどうか


2

バッチを書くとき FOR 使用したことのあるループ tildes スクリプトのコマンド部分の変数プレースホルダー名には、二重引用符で囲みます。

構文例

FOR %%A IN ("*.*") DO ECHO "%%~A"

enter image description here

理由

私は通常、このようなスクリプトを標準として、それらが考えなくても本当に必要であるかどうかにかかわらず書く。二重引用符を set ループの一部を削除してから、 command parameter ループの一部

質問

他の人が経験した理由、またはおそらく公式に文書化された理由が、あなたが使いたいと思うかどうか tildes この理由で FOR cmdまたはバッチ経由でループします。


私はそれらを使ったことがなく、また使う必要もありませんでした。一目見たくないし、ユーザーのホームフォルダーとは関係ないと思うので、私はしたくない。文体的な選択、他人の言うことに興味がある。
primohacker

1
一般的に私はちょっとした音のためだけにちょっとした「ちょっとした時間」をコマンドに追加したくはありません。
primohacker

回答:


1

あなたの正確なユースケースでは違いはありませんが害もありません。

  • ワイルドカードで反復されたファイル名は常に引用符なしで返されます。

二重引用符で囲まれた文字列(特にcmd line args)を繰り返すとき %*
私はいつもそれらを使います:

@Echo off
For %%A IN (
    "this is a sentence"
    two words
    "some words"
) Do (
    Echo with tilde: "%%~A"
    Echo w/o  tilde: "%%A"
    Echo:
)

> SU1397704.cmd
with tilde: "this is a sentence"
w/o  tilde: ""this is a sentence""

with tilde: "two"
w/o  tilde: "two"

with tilde: "words"
w/o  tilde: "words"

with tilde: "some words"
w/o  tilde: ""some words""

はい、それは私が習慣に基づいてそれらを使用する理由です。
Pimp Juice IT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.