从批量文件中删除单个HTML标记?

时间:2017-03-07 12:54:27

标签: html cmd

我在几个文件夹中有大量html文件。 问题是我必须从那些html文件中删除 标签。 我无法弄清楚如何做到这一点.. 我搜索了互联网,一无所获。 是否有任何cmd脚本会打开每个html文件并删除 标记或替换为我选择的任何其他标记? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

嗯..经过8个小时的个人实验,现在应该按照@ user3551620的要求工作了。由于问题规范的更改,我在答案中做了更新,用户告诉我他想在系统文件中运行此脚本,我在其中处理包含空格的路径的工作问题:“Program Files(x86)”..请记住,如果您在系统文件中运行此脚本,则应该以管理员身份执行此脚本,因为在脚本中创建了新的临时文件和其他需要权限的文章。

现在正确的代码应该如下工作:

setlocal enabledelayedexpansion

::get path
SET mypath=%~dp0*.html

set /p old=old string ?
set /p new=new string ?

::cycle for every file of specific folder where you have this script and all html files
for /f "delims=" %%f in ('dir /b /s "%mypath:~0,-1%"') do (

    ::copy to temp file line by line text with replacing of specific tags
    for /f "delims=" %%a in ('type "%%f"') do (
        set str=%%a
        set str=!str:%old%=%new%!
        >> tempfileXXX.txt echo !str!
    )

    ::empty the folder from where you copied
    break>%%f


    ::cycle over every line of temp file to copy back to old file
    for /f "delims=" %%a in (tempfileXXX.txt) do (
        set str=%%a
        >> "%%f" echo !str!
    )

    ::clear tempfile
    break>tempfileXXX.txt

)

::delete temp file
del tempfileXXX.txt
pause

您必须在需要执行操作的文件夹中运行此script.bat。运行脚本后会要求您添加字符串应该替换哪些标签,然后再添加应该替换的标签。请记住,当使用“<”时和“>”创建标签的标志,你应该在每个“<”之前输入签署特殊的“^”字符。这将用你文件夹中arr .html文件中的php标签替换所有html标签。

用法示例: enter image description here

其他问题但不大:

  • 您必须重新运行脚本以关闭代码,但您现在可以自行编程
  • 逐行复制脚本之后你可以注意到,该脚本会删除换行符,但这不是一个很大的问题,找不到如何
  • 我相信我上面提到的脚本可以更加智能,无需创建临时文件..更多有经验的程序员可以在这篇文章的下面评论这个问题..