2015-07-20 27 views
0

我正在嘗試編寫一個.bat-script來打印* .sys文件中的所有變量名稱。問題是某些行看起來像像這樣:在 * .bat文件中使用「作爲eol-character

CONST String strInstructions{22} := [ "---------------------MESSAGE---------------------", "Yaddayadda", " ", "--------------------------------------------------", " Yaddayadda", " ", " Yaddayadda", " Yaddayadda", " ", " Yaddayadda", " ", "---------------------MESSAGE-----------------------", " Yaddayadda", " ", "--------------------------------------------------", " Yaddayadda", " ", " Yaddayadda", " Yaddayadda", " ", " Yaddayadda", " "];

當我沒有消息行,下面的腳本工作正常( 「!」 用來徵求意見):

@echo off for /F "eol=! tokens=3 delims=:{ " %%A in (SType_txt.sys) do ( echo %%A )

但我可以」 t爲我的生活弄清楚如何跳過以開頭的行-character。當我使用"eol=!"" tokens=3 delims=:{ "時,它似乎跳過只包含字符"的行,當我只想檢查第一個非空格字符時。所以我想我的問題基本上是:「我如何僅使用第一個非空格字符作爲eol?」

回答

0

可以指定"作爲EOL字符,並將所有其他選項(包括<space>)保留在分隔符列表中。

for /f ^"eol^=" tokens=3 delims=:{ " %%A in (SType_txt.sys) do echo %%A 

但它是不可能指定EOL兩個角色 - 你可以使用"!,但不能同時使用。

我可以看到的最好方法是使用FINDSTR來濾除額外的不需要的行。

for /F "eol=! tokens=3 delims=:{ " %%A in ('findstr /rvc:"^[:{ ]*\"^" SType_txt.sys') do echo %%A