bat脚本读取配置文件
同事需要从配置文件中读取数据库配置,所以写了该脚本
发现改脚本中使用的是!变量!,经过查询,该类型变量称为延迟变量,由于bat的执行机制(按行读取,读取时会做预处理,将变量值扩展到实际值)
在for循环,if语句后的括号中,多行代码作为一条命令预处理,而不是作为多条命令执行,为了确保命令按行执行,
故使用延迟变量,确保命令按行执行。
@echo off
setlocal enabledelayedexpansion
rem 检查是否提供参数文件
if "%~1"==""(
echo "请提供一个参数文件"
exit /b 1
)
rem 读取参数文件中的账号和密码
set param_file=%1
rem 开始循环读取配置文件中的内容
for /f "tokens=1,2 delims==eol=#" %%A in (%param_file%) do (
set "key=%%A"
set "value=%%B"
if /i "!key!" == "user_name" (
set "oracle_username=!value!"
echo !oracle_username!
)
if /i "!key!" == "password" (
set "oracle_password=!value!"
echo !oracle_password!
)
echo !oracle_username!
echo !oracle_password!
)
d:\sqluldr2\sqluldr2 user="!oracle_username!"/"!oracle_password!"@hostname:1521/service_name query=table_name file=d:\data.txt Field=0x1c
本文来自博客园,作者:diablo-427,转载请注明原文链接:https://www.cnblogs.com/diablo-427/articles/17770833.html