使用\"作为* .bat文件中的eol-character

时间:2015-07-20 13:33:37

标签: batch-file

我试图写一个.bat脚本,它在* .sys文件中打印所有变量名。问题是有些行看起来像这样:

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 )

但是我的生活无法弄清楚如何跳过以"字符开头的行。当我使用"eol=!"" tokens=3 delims=:{ "时,它似乎跳过只包含字符"的行,当我只想检查第一个非空格字符时。所以我想我的问题基本上是:"我如何只使用第一个非空格字符作为eol?"

1 个答案:

答案 0 :(得分: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