![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 06:20 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]怎样在文件中插入文本 |
| 可打印版本 964 / 14 |
| 第1楼 xing3019 | 发表于 2007-10-26 13:09 |
| 初级用户 发帖 13 积分 33 | |
|
[求助]怎样在文件中插入文本 有这样1个ASP(INC.ASP)文件内容:
if IsObject(con) = false then Response.Write "未找到数据库连接对象!" Response.End end if if con.State = 0 then Response.Write "数据库无法打开!" Response.End end if 我想在第一个 end if 后加入 1些代码 如:x = GetSysConfigOption() 生成如下代码: if IsObject(con) = false then Response.Write "未找到数据库连接对象!" Response.End end if x = GetSysConfigOption() if con.State = 0 then Response.Write "数据库无法打开!" Response.End end if 请问如何实现? 谢谢指点 再问:如何同时把所有ASP文件改成上面示例?(不用,纯想法) [ Last edited by xing3019 on 2007-10-26 at 01:13 PM ] |
|
| 第2楼 xing3019 | 发表于 2007-10-26 19:50 |
| 初级用户 发帖 13 积分 33 | |
|
谁能帮忙啊??
要搜索第一次 end if 后添加 x = GetSysConfigOption() 指定行数没用 [ Last edited by xing3019 on 2007-10-26 at 07:51 PM ] |
|
| 第3楼 abcd | 发表于 2007-10-26 20:05 |
| 银牌会员 发帖 739 积分 1,436 | |
| 第4楼 xing3019 | 发表于 2007-10-26 22:13 |
| 初级用户 发帖 13 积分 33 | |
|
谢谢
但是 if !num!==1 if /i "!str: =!"=="endif" echo x = GetSysConfigOption() 最后1个 ) 有问题 出现错误:已经达到最大的 setlocal 递归层。 去掉 ) 后不报错 , if !num!==1 if /i "!str: =!"=="endif" echo x = GetSysConfigOption( 但是程序不完整 [ Last edited by xing3019 on 2007-10-26 at 10:39 PM ] |
|
| 第5楼 abcd | 发表于 2007-10-26 22:20 |
| 银牌会员 发帖 739 积分 1,436 | |
|
不能处理asp中都<% %>字符
|
|
| 第6楼 xing3019 | 发表于 2007-10-26 22:43 |
| 初级用户 发帖 13 积分 33 | |
|
测试 <% %> 没问题,可以复制下来
但是 if !num!==1 if /i "!str: =!"=="endif" echo x = GetSysConfigOption() 最后1个 ) 有问题 出现错误:已经达到最大的 setlocal 递归层。 去掉 ) 后不报错 , if !num!==1 if /i "!str: =!"=="endif" echo x = GetSysConfigOption( 可是程序不完整 |
|
| 第7楼 terse | 发表于 2007-10-26 22:43 |
| 银牌会员 发帖 946 积分 2,404 | |
|
略去 endlocal
@echo off for /f "delims=" %%i in (t.txt) do ( set "str=%%i" echo %%i setlocal enabledelayedexpansion if "!str!"=="end if" set /a num+=1 if !num!==1 if /i "!str!"=="end if" echo x = GetSysConfigOption(^) ) pause [ Last edited by terse on 2007-10-26 at 10:48 PM ] |
|
| 第8楼 xing3019 | 发表于 2007-10-26 22:51 |
| 初级用户 发帖 13 积分 33 | |
|
OK
endlocal 需要,谢谢你了 我参照提示多加了1条 @echo off for /f "delims=" %%i in (t.txt) do ( set "str=%%i" echo %%i setlocal enabledelayedexpansion if "!str: =!"=="endif" set /a num+=1 if !num!==1 if /i "!str: =!"=="endif" ( echo x = GetSysConfigOption(^) echo Set obj = Nothing ) endlocal ) pause [ Last edited by xing3019 on 2007-10-26 at 10:53 PM ] |
|
| 第9楼 terse | 发表于 2007-10-26 23:32 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by xing3019 at 2007-10-26 22:51: 那样的话 第二个end if后面也ECHO? |
|
| 第10楼 xing3019 | 发表于 2007-10-27 15:15 |
| 初级用户 发帖 13 积分 33 | |
|
确实都+了,
但 略去 endlocal 显示时出现:已经达到最大的 setlocal 递归层。 >>到文件没出现: 已经达到最大的 setlocal 递归层。 什么原因??? |
|
| 第11楼 abcd | 发表于 2007-10-27 16:17 |
| 银牌会员 发帖 739 积分 1,436 | |
|
不用setlocal
改用call会不会好点?? |
|
| 第12楼 terse | 发表于 2007-10-27 20:57 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@echo off
for /f "delims=" %%i in (t.txt) do ( echo %%i if "%%i"=="end if" call :stra ) pause goto :eof :stra set /a num+=1 if %num% equ 1 (echo x = GetSysConfigOption(^) echo Set obj = Nothing ) |
|
| 第13楼 abcd | 发表于 2007-10-27 21:13 |
| 银牌会员 发帖 739 积分 1,436 | |
Originally posted by terse at 2007-10-27 08:57 PM: 如果end if的前后都有空格呢?? |
|
| 第14楼 terse | 发表于 2007-10-27 21:15 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by abcd at 2007-10-27 21:13: 那还是这样吧 if "!str: =!"=="endif" @echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in (t.txt) do ( echo %%i set "str=%%i" if "!str: =!"=="endif" call :stra ) pause goto :eof :stra set /a num+=1 if !num! equ 1 (echo x = GetSysConfigOption(^) echo Set obj = Nothing ) [ Last edited by terse on 2007-10-28 at 12:20 AM ] |
|
| 第15楼 xing3019 | 发表于 2007-10-28 13:45 |
| 初级用户 发帖 13 积分 33 | |
|
感谢大家的帮助.
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |