2017-02-03 44 views
0

我的目標是使用由for循環創建的文本文件作爲變量的輸入到另一個for循環。但是,創建的初始文本文件末尾有一個新的行/空格,並在讀取所述文本文件時被聲明爲變量。下面如何從for循環中的文本文件中刪除新行(CMD/Batch)

代碼是創建一個文本文件...

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

這個文本輸出文件,那麼看起來像

A 
C 
D 
(empty line) 

我然後使用這個文本文件中送入另一個用於命令其這些行中的每一行都被用作變量。

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

這(空線)或空間被饋送作爲一個變量,它是不希望的,所以我沿着該鏈的命令的某處尋找修復。

回答

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,也不知道再次提出問題的協議。然而,上面的代碼並沒有最終取消保存到文本文件的換行符。相反,我必須在第二個代碼中進行手動測試,以通過A-Z字符列表進行循環,並且只在該變量等於任何這些字母時才運行該命令。 – Phil

2

不包括在輸出文件

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

/value格式問wmic非必要線的輸出會像

Caption=C: 

使用冒號和等號作爲分隔符我們只留下驅動器號,並且,因爲我們要求tokens=2,沒有第二個標記(驅動器號)的行被丟棄。