读取文本文件中的变量并忽略批处理文件中同一行上的注释

时间:2015-12-03 05:10:59

标签: batch-file

我使用以下批处理脚本(参见下面的示例c)来读取文本文件的内容 并在多个批处理文件中使用变量;哪个工作正常。

问题是file.txt的格式。如果可能,我想在下面的示例A格式中使用它; 但它目前的格式如例B所示。

示例A (file.txt的首选格式)

VALUE|COMMENT ON VALUE's PURPOSE
  • 要读入脚本的值
  • 值/行字符结束(即| @!%等脚本会忽略此字符的任何内容)
  • 关于价值目的的评论

示例B (file.txt的当前格式)

server1
C:
10.10.10.1
::Comments
::name of server
::remote server IP address
::drive the application is installed on

示例C (减少用于参考的批处理文件版本)

:: SET VARIABLES FROM "file.txt"
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (file.txt) do (
  set /a N+=1
  set v[!N!]=%%a
)

::variables
set VER=%v[5]%
set SRVDRV=%v[6]%

等...

希望这是可能的,因为它会使file.txt更容易阅读/更新/部署 特别是在我们为此配置添加更多脚本时转发。

1 个答案:

答案 0 :(得分:1)

您可以在FOR / F循环中使用delims选项 这将使第一个标记到第一个管道符号

for /f "tokens=1 delims=|" %%a in (file.txt) do (
...