|
本帖最后由 9001 于 2020-11-15 15:12 编辑
使用场景:
有个文件a.ora包含座位信息,标志是PC-88之类,88之类座位号为01-99。需要运行批处理,输入座号如99,然后打开a.ora将88替换为99。
“PC-”是标志,要更换的是其后面两位数字。
比如a.ora内容:
XXXXXX XXXX
XXPC-88,XXX
XXXXXPC-88XXX
XX为任意字符,PC-是唯一标志,不会有歧义。
如果输入01,那么改动保存的a.ora内容应该是
XXXXXX XXXX
XXPC-01,XXX
XXXXXPC-01XXX
上面是原先的要求,实现时由于88内容可能变化,需要VBS替换。退而求其次简化要求,从固定机器下载listener. ora后再更改注入座席号,实现得很丑陋:
- rem 输入座席号,将座席号码注入当前目录下的ora文件,并放到oracle对应的配置文件中。
- @echo off
- color 3f
- PUSHD %~dp0
- title 座席席位设置
- set listener=listener
- set oraclePath=C:\oracle\product\10.2.0\db_2\network\ADMIN
- if not exist C:\oracle\product\10.2.0\db_2\network\ADMIN\%listener%.ora set oraclePath=C:\oracle\product\10.2.0\db_1\network\ADMIN
- echo. 输入座席号码,请严格按座席号码输入。
- echo. 如果座席号码为1-9号,输入数字前要加0:
- set /p Nubmer=
- echo 座席号码(IP Number)是 %Nubmer%
- set IP=%Nubmer%
- ren %listener%.ora %listener%.txt
- setlocal Enabledelayedexpansion
- for /f "tokens=*" %%a in (%listener%.txt) do (
- set var=%%a
- set var=!var:XX=%Nubmer%!
- echo !var!>>%listener%1.txt
- )
- endlocal
- ren %listener%1.txt %listener%.ora
- copy %listener%.ora %oraclePath% /y 1>NUl 2>nul
- del %listener%.ora
- ren %listener%.txt %listener%.ora
- echo 文件复制完成
- echo.
- pause
复制代码
多了个%IP%变量忘了去掉,是用来设置静态IP地址和计算机名称的。因为经过tokens命令之后%Numner%变量会清空,所以要提前多设置一个变量。 |
|