我有一个文本文件Config.ini,其内容为:
Publish=N
PublishDateTime=20081118140545
UpdateServerB=N
UpdateDateTime=20081118140545
Backup=Y
BackupDateTime=20081118144225
FallBack=N
FallbackDateTime=20080218091231
我以前写了个批处理,可以读取Config.ini文件里的内容,并进行操作,如果Publish=Y,就调用Publish.bat,并将Config.ini里面的Publish=Y改成Publish=N;同理,如果UpdateServerB=Y,就调用UpdateServerB.bat,并将UpdateServerB置为N,同时将文本中的时间PublishDateTime传递给Publish.bat和UpdateServerB.bat:
@echo off
for /f "delims=" %%a in ('findstr /i "^PublishDateTime" Config.ini') do set num=%%a
set date=%num:~15%
for /f "delims=" %%a in (Config.ini) do (
if not defined flag (call :loop "%%a" a) else call :loop "%%a"
)
exit
:loop
set num=%~1
if "%~2"=="" (set "flag=>>") else set "flag=>"
if "%~1"=="Publish=N" (
exit
)
if "%~1"=="Publish=Y" (
echo Publish=N>Config.ini
call Publish.bat %date%
goto :eof
)
if "%~1"=="UpdateServerB=Y" (
echo UpdateServerB=N>>Config.ini
call UpdateServerB.bat %date%
goto :eof
)
>>Config.ini echo %~1
但现在我想要该批处理在原有的基础上增加一个功能,可以实现如果Backup=Y,则调用Backup.bat,并将Backup=Y改成Backup=N,同时传给Backup.bat的%date%的值为文本中BackupDateTime的值;如果FallBack=Y,则调用FallBack.bat,并将FallBack=Y改成FallBack=N,同时将FallbackDateTime的值传给FallBack.bat。
我是这样写的,但不行:
@echo off
for /f "delims=" %%a in ('findstr /i "^PublishDateTime" Config.ini') do set num=%%a
set date=%num:~15%
for /f "delims=" %%a in (Config.ini) do (
if not defined flag (call :loop "%%a" a) else call :loop "%%a"
)
for /f "delims=" %%b in ('findstr /i "^BackupDateTime" Config.ini') do set num2=%%b
set bakdate=%num2:~15%
for /f "delims=" %%b in (Config.ini) do (
if not defined flag (call :loop "%%b" b) else call :bak "%%b"
)
exit
:loop
set num=%~1
if "%~2"=="" (set "flag=>>") else set "flag=>"
if "%~1"=="Publish=N" (
exit
)
if "%~1"=="Publish=Y" (
echo Publish=N>Config.ini
call Publish.bat %date%
goto :eof
)
if "%~1"=="UpdateServerB=Y" (
echo UpdateServerB=N>>Config.ini
call UpdateServerB.bat %date%
goto :eof
)
:bak
set num2=%~1
if "%~2"=="" (set "flag=>>") else set "flag=>"
if "%~1"=="Backup=N" (
exit
)
if "%~1"=="Backup=Y" (
echo Backup=N>>Config.ini
call Backup.bat %bakdate%
goto :eof
)
>>Config.ini echo %~1
谁能帮我修改一下啊?!谢了!
[ Last edited by boy on 2008-11-19 at 08:53 ]
Publish=N
PublishDateTime=20081118140545
UpdateServerB=N
UpdateDateTime=20081118140545
Backup=Y
BackupDateTime=20081118144225
FallBack=N
FallbackDateTime=20080218091231
我以前写了个批处理,可以读取Config.ini文件里的内容,并进行操作,如果Publish=Y,就调用Publish.bat,并将Config.ini里面的Publish=Y改成Publish=N;同理,如果UpdateServerB=Y,就调用UpdateServerB.bat,并将UpdateServerB置为N,同时将文本中的时间PublishDateTime传递给Publish.bat和UpdateServerB.bat:
@echo off
for /f "delims=" %%a in ('findstr /i "^PublishDateTime" Config.ini') do set num=%%a
set date=%num:~15%
for /f "delims=" %%a in (Config.ini) do (
if not defined flag (call :loop "%%a" a) else call :loop "%%a"
)
exit
:loop
set num=%~1
if "%~2"=="" (set "flag=>>") else set "flag=>"
if "%~1"=="Publish=N" (
exit
)
if "%~1"=="Publish=Y" (
echo Publish=N>Config.ini
call Publish.bat %date%
goto :eof
)
if "%~1"=="UpdateServerB=Y" (
echo UpdateServerB=N>>Config.ini
call UpdateServerB.bat %date%
goto :eof
)
>>Config.ini echo %~1
但现在我想要该批处理在原有的基础上增加一个功能,可以实现如果Backup=Y,则调用Backup.bat,并将Backup=Y改成Backup=N,同时传给Backup.bat的%date%的值为文本中BackupDateTime的值;如果FallBack=Y,则调用FallBack.bat,并将FallBack=Y改成FallBack=N,同时将FallbackDateTime的值传给FallBack.bat。
我是这样写的,但不行:
@echo off
for /f "delims=" %%a in ('findstr /i "^PublishDateTime" Config.ini') do set num=%%a
set date=%num:~15%
for /f "delims=" %%a in (Config.ini) do (
if not defined flag (call :loop "%%a" a) else call :loop "%%a"
)
for /f "delims=" %%b in ('findstr /i "^BackupDateTime" Config.ini') do set num2=%%b
set bakdate=%num2:~15%
for /f "delims=" %%b in (Config.ini) do (
if not defined flag (call :loop "%%b" b) else call :bak "%%b"
)
exit
:loop
set num=%~1
if "%~2"=="" (set "flag=>>") else set "flag=>"
if "%~1"=="Publish=N" (
exit
)
if "%~1"=="Publish=Y" (
echo Publish=N>Config.ini
call Publish.bat %date%
goto :eof
)
if "%~1"=="UpdateServerB=Y" (
echo UpdateServerB=N>>Config.ini
call UpdateServerB.bat %date%
goto :eof
)
:bak
set num2=%~1
if "%~2"=="" (set "flag=>>") else set "flag=>"
if "%~1"=="Backup=N" (
exit
)
if "%~1"=="Backup=Y" (
echo Backup=N>>Config.ini
call Backup.bat %bakdate%
goto :eof
)
>>Config.ini echo %~1
谁能帮我修改一下啊?!谢了!
[ Last edited by boy on 2008-11-19 at 08:53 ]

