迭代地从多个属性文件中读取属性,并使用批处理脚本执行一些操作



我有两个目录,一个有一个inputs.properties文件,这个文件中的一个属性是script_properties_path。我的任务是从这个属性中获取路径,并列出所有的文件,这些文件又是不同的属性文件集。现在我必须从路径中的每个文件中读取所有属性并执行一些操作。我能够读取属性,但当我将它们设置为一些变量时,我得到空字符串。inputs.properties:

WORKSPACE_DIR=C:Workspace_LSV
PACKAGES_PATH=QA_AUTO_SELENIUMSeleniumAutomation2.0
RESULTS_DIR=C:Results
PROPERTIES_DIR=D:WorkProjectsxECMBatchRunnertemp

文件在D:WorkProjectsxECMBatchRunnertemp:

LSV1.properties
LSV2.properties

lsv - 437 - _lsv - 436. -属性:

FILENAME=/cs/gui/tests/admin/auditing/AuditTestVersionAndFuncMenuItems.java
CLASSNAME=cs.gui.tests.admin.auditing.AuditTestVersionAndFuncMenuItems

LS_435.properties:

FILENAME=/cs/gui/tests/admin/auditing/TestAuditingShortcut.java
CLASSNAME=cs.gui.tests.admin.auditing.TestAuditingShortcut

我代码:

@echo "batch program"
@echo off
For /F "tokens=1* delims==" %%A IN (inputs.properties) DO (SET %%A=%%B)
IF "%%A"=="WORKSPACE_DIR" SET WORKSPACE_DIR=%%B
IF "%%A"=="PACKAGES_PATH" SET PACKAGES_PATH=%%B
IF "%%A"=="PROPERTIES_DIR" SET PROPERTIES_DIR=%%B
IF "%%A"=="RESULTS_DIR" SET RESULTS_DIR=%%B
IF "%%A"=="BROWSER" SET BROWSER=%%B
IF "%%A"=="APP_URL" SET APP_URL=%%B
IF "%%A"=="CLASSPATH" SET CLASSPATH=%%B

@echo "WORKSPACE_DIR %WORKSPACE_DIR%"
@echo "PACKAGES_PATH %PACKAGES_PATH%"
@echo "PROPERTIES_DIR %PROPERTIES_DIR%"
@echo "RESULTS_DIR %RESULTS_DIR%"
@echo "BROWSER %BROWSER%"
@echo "APP_URL %APP_URL%"
FOR %%D in (%PROPERTIES_DIR%*.*) DO (
@echo "FILE:%%D "

For /F "tokens=1* delims==" %%E IN (%%D) DO (set %%E=%%F)
IF "%%E"=="FILENAME" SET FILENAME=%%F
IF "%%E"=="CLASSNAME" SET CLASSNAME=%%F
@echo %FILENAME%
@echo %CLASSNAME%   
) 
cmd /k

输出:


"batch program"
"WORKSPACE_DIR C:Workspace_LSV"
"PACKAGES_PATH productscompqa.auto.selenium22.4.0-branchpkgQA_AUTO_SELENIUMOT_SeleniumAutomation2.0"
"PROPERTIES_DIR D:WorkProjectsxECMBatchRunnertemp"
"FILE:D:WorkProjectsxECMBatchRunnertempLSV-437_LSV-436.properties "
ECHO is off.
ECHO is off.
"FILE:D:WorkProjectsxECMBatchRunnertempLS_435.properties "
ECHO is off.
ECHO is off.

当我运行以下代码时:

FOR %%D in (%PROPERTIES_DIR%*.*) DO (
@echo "FILE:%%D "

For /F "tokens=1* delims==" %%E IN (%%D) DO (
IF "%%E"=="FILENAME" SET FILENAME=%%F
IF "%%E"=="CLASSNAME" SET CLASSNAME=%%F
@echo %%E
@echo %%F
@echo %FILENAME%    
@echo %CLASSNAME%
)
)

输出是:

"batch program"
"WORKSPACE_DIR C:Workspace_LSV"
"PACKAGES_PATH productscompqa.auto.selenium22.4.0-branchpkgQA_AUTO_SELENIUMOT_SeleniumAutomation2.0"
"PROPERTIES_DIR D:WorkProjectsxECMBatchRunnertemp"
"RESULTS_DIR C:Results"
"BROWSER chrome"
"APP_URL https://otcs2.xsogpreprod.opentext.cloud/cs/cs"
"FILE:D:WorkProjectsxECMBatchRunnertempLSV-437_LSV-436.properties "
FILENAME
/CSTests16_2/src/com/opentext/auto/cs/gui/tests/admin/auditing/AuditTestVersionAndFuncMenuItems.java
ECHO is off.
ECHO is off.
CLASSNAME
com.opentext.auto.cs.gui.tests.admin.auditing.AuditTestVersionAndFuncMenuItems
ECHO is off.
ECHO is off.
"FILE:D:WorkProjectsxECMBatchRunnertempLS_435.properties "
FILENAME
/CSTests16_2/src/com/opentext/auto/cs/gui/tests/admin/auditing/TestAuditingShortcut.java
ECHO is off.
ECHO is off.
CLASSNAME
com.opentext.auto.cs.gui.tests.admin.auditing.TestAuditingShortcut
ECHO is off.
ECHO is off.

...
FOR %%D in (%PROPERTIES_DIR%*.*) DO (
@echo "FILE:%%D "

For /F "tokens=1* delims==" %%E IN (%%D) DO (set %%E=%%F)
rem Redundant IF "%%E"=="FILENAME" SET FILENAME=%%F
rem Redundant IF "%%E"=="CLASSNAME" SET CLASSNAME=%%F
) 
@echo %FILENAME%
@echo %CLASSNAME%
cmd /k

最新更新