(.bat)如何批量更改具有特定名称的文件

时间:2018-10-14 16:42:17

标签: batch-file

我是这里的新手,也是新手,我想更改所有名为squelette-*。html的文件(删除其中的所有“”)

我的代码如下:

    @echo off

    if not exist squelette-0.html ( type nul > squelette-0.html )

    set ligne1="<!DOCTYPE html>"
    set ligne2="<html lang="fr">"
    set ligne3="<head>"
    set ligne4="<title> </title>"
    set ligne5="<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">"
    set ligne6="<style type="text/css">"
    set ligne7="body {"
    set ligne8="}"
    set ligne9="</style>"
    set ligne10="</head>"
    set ligne11="<body>"
    set ligne12="<p>"
    set ligne13="</p>"

    @echo %ligne1% > squelette-0.html
    @echo %ligne2% >> squelette-0.html
    @echo %ligne3% >> squelette-0.html
    @echo %ligne4% >> squelette-0.html
    @echo %ligne5% >> squelette-0.html
    @echo %ligne6% >> squelette-0.html
    @echo %ligne7% >> squelette-0.html
    @echo %ligne8% >> squelette-0.html
    @echo %ligne9% >> squelette-0.html
    @echo %ligne10% >> squelette-0.html
    @echo %ligne11% >> squelette-0.html
    @echo %ligne12% >> squelette-0.html
    @echo %ligne13% >> squelette-0.html

,我希望squelette-0.html看起来像这样:

    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title> </title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <styletype="text/css">
    body {
    }
    </style>
    </head>
    <body>
    <p>
    </p>

当我尝试从变量中删除它们时,出现一个奇怪的错误:

    File not found
    File name not valid

(由我自己翻译成法语)

或者如果我的方法不好,有人可以帮助我并创造更好的方法吗? (我的最终想法是批量复制this script

1 个答案:

答案 0 :(得分:1)

这是我要这样做的方式:

@echo off

< NUL (
    set /P "=<!DOCTYPE html>"   & echo/
    set /P "=<html lang="fr">"  & echo/
    set /P "=<head>"            & echo/
    set /P "=<title> </title>"  & echo/
    set /P "=<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">" & echo/
    set /P "=<style type="text/css">" & echo/
    set /P "=body {"            & echo/
    set /P "=}"                 & echo/
    set /P "=</style>"          & echo/
    set /P "=</head>"           & echo/
    set /P "=<body>"            & echo/
    set /P "=<p>"               & echo/
    set /P "=</p>"              & echo/
) > squelette-0.html

set /P命令允许将其“提示”括在括号中,因此不必转义特殊字符。但是,它不在行尾显示LF,因此有必要在每行之后添加一个echo/命令。另外,set /P 读取一行,因此有必要将其输入重定向到< NUL