2017-02-03 3 views
0

私の目標は、forループによって作成されたテキストファイルを、別のforループの変数への入力として使用することです。しかし、作成された最初のテキストファイルは最後に新しい行/スペースを持ち、前記テキストファイルを読むときに変数として宣言されています。forループ(CMD /バッチ)のテキストファイルから新しい行を削除する方法

以下のコードは、このテキスト出力ファイルは、その後、私は、そのためのコマンドのために別のものに供給するために、このテキストファイルを使用しています

A 
C 
D 
(empty line) 

のように見えます...

for /F "Skip=1 Delims=:" %%A In ('WMIC LogicalDisk Get Caption') do @echo(%%A>> "EXAMPLE DIRECTORY\partitions.txt" 

をテキストファイルを作成していますこれらの各行は変数として使用されます。

for /F "delims=" %%P in (EXAMPLE DIRECTORY\partitions.txt) do (echo test.exe -partition %%P 

この(空行)またはスペースを変数として供給されていると私はどこかのコマンドのこのチェーンに沿って修正を探していますので、それは望ましくありません。出力はコロンと我々区切り文字として等号を使用して

Caption=C: 

のようになります/value形式のためwmicをお願い

答えて

1

私はあなたに答えを提供したトピックで単に尋ねただけかもしれません。

(For /F "Skip=1 Delims=:" %%A In ('WMIC LogicalDisk Get Caption') Do For %%B In (%%A) Do Echo(%%B:)>"EXAMPLE DIRECTORY\partitions.txt" 
+0

もう一度ご返信ありがとうございます。私はStackoverflowをあまり使用しないで申し訳ありませんし、再度質問をするためのプロトコルを知らなかった。しかし、上記のコードは、テキストファイルに保存された改行文字を取り除くことに終わらなかった。代わりに、2番目のコードで手動テストをforループのfor-loopに実行し、その変数がそれらの文字のいずれかと等しい場合にのみコマンドを実行しなければなりませんでした。 – Phil

2

出力ファイルに不必要な行を含めないでください

>"EXAMPLE DIRECTORY\partitions.txt" (
    for /f "tokens=2 delims==:" %%a in (' 
     wmic logicaldisk get caption /value 
    ') do (echo(%%a) 
) 

ドライブ文字を残しておき、tokens=2を要求すると、2番目のトークン(ドライブ文字)のない行は破棄されます。

関連する問題