Board logo

标题: 求,替换ASP文件中指定字符的批处理? [打印本页]

作者: vcstone     时间: 2007-4-9 12:32    标题: 求,替换ASP文件中指定字符的批处理?

环境:windows xp   命令行提示符

要求:自动查找并替换(这里指用SB_替换)同文件夹内所有的ASP文件中指定的字符(这里指的是admin_)

或直接查找所有的ASP文件中的"admin_"字符然后把它删掉也可以.


还有个小要求,最好能给程序加上少许注释,因为现在也在学批处理,希望能帮助了解一下程序.谢谢.
作者: lxmxn     时间: 2007-4-9 15:12

rem 启动变量延迟;
@echo off&setlocal enabledelayedexpansion

rem 遍历asp文件并替换;

for /f "delims=" %%a in ('dir /b/a-d .\*.asp') do (
    for /f "tokens=1* delims=:" %%b in ('findstr /n .* "%%a"') do (
        set "o=%%c"
        set "o=!o:SB=admin!"
        echo/!o!>>%%~na_%%~xa
    )
)
没有测试,有问题跟贴讨论……

作者: 3391617     时间: 2007-4-9 21:32
我也学习下,原来asp也可以~~
作者: vcstone     时间: 2007-4-10 06:04
先谢过,今晚回去测试..
作者: vcstone     时间: 2007-4-10 10:03
大侠,试过了不行. 运行后会产生几个和要修改的文件内容一样的ASP文件,但要修改的部分并没有改变
作者: lxmxn     时间: 2007-4-10 12:51

Re vcstone:

我测试了一下,上面那个批处理是可以的,不过我又改进了一下,会删除空行,见下面的代码:
::启动变量延迟;
@echo off&setlocal enabledelayedexpansion
::遍历asp文件并替换;
for /f "delims=" %%a in ('dir /b/a-d .\*.asp') do (
    for /f "tokens=1* delims=:" %%b in ('findstr /n .* "%%a"') do (
        if not "%%c"=="" (set "o=%%c"
        set "o=!o:SB=admin!"
        echo/!o!>>%%~na_%%~xa)
    )
)
注意,只能替换里面的“SB”字符,而“sb”、“Sb”或者“sB”等字符是不能被替换的,你再试试。

作者: vcstone     时间: 2007-4-11 03:11
可以了..先谢过!暂时对程序休还不大了解,回去琢磨琢磨.有问题再问你了.