は治療修飾子を持っていますその値をファイルの仕様として分解してコンポーネントに分解します。
- %〜dR = drive:
- %%〜PR = \パス\
- %%〜NRの=たbaseName
- %%〜xRを=。拡張子
これらの改質剤はまた、正規(標準)形式に値を正規化します。
Windowsでは、ファイル名またはフォルダ名の末尾にスペースまたはドットを使用できないため、修飾子は末尾のドットおよびスペースを値から削除します。この事実を利用して、末尾のスペースをトリムすることができます!
FOR /F "delims=" %%R IN (C:\Test01.txt) DO IF Ready == %%~nxR COPY /y C:\Test01.txt
値が:
\
または/
が含まれていない場合にのみ正常に動作します。また、後続のドットもトリミングされることに注意してください。したがってc:\my path\Ready.
のような文字列は、%%~nxR
を使用するとReady
になります。
さらに簡単で信頼性の高い解決方法があります。すべての行は、単一の単語(末尾のスペースを含む)で構成されています。あなたがその事実に頼ることができれば、単にあなたのDELIMSオプションを削除して、あなたにスペースをトリムさせることができます(デフォルトのDELIMSはスペースとタブです)。
FOR /F %%R in (C:\Test01.txt) DO IF Ready == %%R COPY /y C:\Test01.txt
あなたには、いくつかの言葉が、あなたはあなたが現在あなたのバッチファイルを持っているいくつかのコードを追加します。
FOR /F %%R* in (C:\Test01.txt) DO IF Ready == %%R IF "%%S" == "" COPY /y C:\Test01.txt
を使用することができ、コピーしたくない場合には、READY従うことができることを心配している場合。 – Tomalak
FOR/F "delims =" %% R IN(C:\ Test01.txt)DO IFレディ== %% R COPY/y C:\ Test01.txt " –
「レディ」とは何ですか?また、C 'から数行を追加してください:\ Test01.txt' – Tomalak