如何使用批处理文件更改配置文件中的现有变量

时间:2013-12-02 16:19:58

标签: batch-file configuration-files

我在客户端计算机上安装软件,所以我有一个包含100多个变量的配置文件,所以我想在运行时使用批处理文件更改这些变量。

以下是一些变量 -

文件名:config.asp ...

USPSAccessKey=fsfsfs113bh$dd
USPSUserID=1232445
USPSPassword=#########
USPSServiceCode=PRIORITY
USPSServiceCodeFixed=YES
USPSPackageType=VARIABLE
USPSCustomerClassCode=FLAT

...

因此,有任何方法可以读取此文件,然后使用批处理文件

更改变量

提前致谢,

2 个答案:

答案 0 :(得分:1)

这应该这样做。

首先使用for循环读取文件,然后修改一些值,然后使用set写出变量并重定向输出。注意:我使用config2.asp作为输出,因此您可以先测试它是否有效。

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "delims=" %%I in (config.asp) do set "%%I"

:: Set some USPS variables here
::


set USPS > config2.asp

答案 1 :(得分:1)

你的问题不明确。如果您想修改config.asp文件以便更改具有不同值的某些行,那么您可以这样做:

@echo off
setlocal EnableDelayedExpansion

rem Define new values of desired variables
set newValue[USPSUserID]=5442321
set newValue[USPSPassword]=$$$$$$$$$

(for /F "tokens=1,2 delims==" %%a in (config.asp) do (
   set "value=%%b"
   if defined newValue[%%a] set value=!newValue[%%a]!
   echo %%a=!value!
)) > newConfig.asp