关于bat替换文本文件中感叹号的问题?
我的bat脚本是,更新配置文件中startTime=0420时间一行,代码如下:
@echo off&setlocal enabledelayedexpansion
set /a a=0
set /a a=%time:~0,1%
set /a b=%time:~1,1%
set /a c=%time:~3,1%
set /a d=%time:~4,1%
set /a c=%c%+1
if %c%==6 set /a c=0 && set /a b=%b%+1
if %b%==10 set /a b=0 && set /a a=%c%+1
if %a%==2 if %b%==4 set /a a=0 && set /a b=0
set str="%a%%b%%c%%d%"
::以下代码替换文本内容,要处理的文本为test.ini
(For /f "delims=" %%i in (test.ini) do (
echo %%i| Find /i "startTime" >nul
If !errorLevel!==0 (echo startTime=%str%) Else (echo %%i)
))
del test.ini
ren 11.txt test.ini
--------------------------------
test.ini里面是这样的:
#ESS Parameter Management
#Tue Dec 13 14:54:07 CST 2005
isDRJGDM=0
InitETLSign=1
IsMultiETLThread=0
ThreadPoolSize=4
startTime=0420
isDataColComplete=select paravalue from ggxx_csb where paraname='sjscrq') and bfbz != '2'
MessageBadFilePath=
PrepareFile=
ShowIndexNum=100
--------------------------------------------
我执行后:
bfbz != '2'变为:bfbz = '2'感叹号不见了,请问高手怎么解决?
--------
除了这句&setlocal enabledelayedexpansion,就可以显示出感叹号,但是时间又替换不了?请问大家有什么好方法,替代或者修改我的bat脚本,不甚感激!
[解决办法]
右键test.ini,打开方式->记事本
CTRL+F
...
[解决办法]
1楼你坑爹啊