【问题标题】:Batch Scripting Properties file批处理脚本属性文件
【发布时间】:2018-10-07 21:06:12
【问题描述】:

这必须分批完成。

我需要能够读取输入文件,并仅解析包含特定字符串的行的某些部分,然后将其写入输出文件。例如:

input =test.properties file
SQL
Datamodel
sale_detail.sql
bpid_exclusion.sql

预期输出 =

SQL
Datamodel
sale_detail.sql
bpid_exclusion.sql

这是我目前所拥有的:

@setlocal enableextensions enabledelayedexpansion
set 
log_filepath=PATH/config.sql
FOR /F "usebackq tokens=* delims=" %%A IN (test.properties) DO (
set temp=%%A
ECHO %%A >> %log_filepath%

我现在遇到的问题是,当我运行这个脚本时,它正在打印完整的属性文件,但我想要的是在读取文件后它应该检查文件中是否存在 SQL 一词,如果是的话它应该如果存在数据模型,则检查下一个单词数据模型,它应该在 log_filepath 中打印下两行,即 sale_Detail.sql 和 bpid_exclusion.sql

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 这是我的 bat 文件 FOR /F "usebackq tokens=1* delims==" %%A IN ("%~dp0\test1.properties") DO (ECHO %%A>> % log_filepath% ) @endlocal 我的要求是验证 string1 是否存在 如果 string 2 存在则转到 string 2 打印 string2 的所有内容。可以参考下面的test1.properties文件S1 S2 fix1.sql fix2.sql
  • 以可读的格式将其放入您的问题中,以供我们审核。如果您以 4 个空格开始一行,然后开始输入,则会出现类似 this 的代码
  • 请帮我解决这个问题
  • 您想验证String1String2file1.sqlfile2.sql 是否存在于哪里?它有助于在编写问题时,尤其是需要“立即”回答的问题,以充分解释您的任务。

标签: batch-file properties-file


【解决方案1】:

您的问题不清楚,但我猜您有一个带有文件名的文件。如果文件中的文件名存在于目录中,则回显内容。如果是这种情况,试试这个。

@echo off
Set "infile=%~dp0test1.properties"
set "log_filepath=d:\somedir\logfile.log"
for /f "delims=" %%a in (%infile%) do If exist "%%a" type "%%a" >> %log_filepath%

【讨论】:

  • 我的文件是这样的 SQL Datamodel sale_detail.sql exclude.sql Data model 中有两个文件,如果找到 datamodel 应该打印它,在此之前它应该检查 SQL 的存在
  • 请编辑您的问题并澄清。给出每个文件的例子和预期的结果。
  • 我已经编辑并更新了我的必要要求,如果可以,请查看并提供解决方案 - Gerhard Barnad
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 2011-03-01
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多