0

需要删除一个文件,然后进一步处理。

del file.html

echo  ^<center^>^<a href="abc.html"^>ABC^</a^>^</center^> >> file.html
......
echo  ^<center^>^<a href="xyz.com"^>XYZ^</a^>^</center^> >> file.html

第一次我收到此消息Could Not Find C:\Users\file.html,但进一步处理以写入文件。我想知道,如果找不到要删除的文件,它是否可以在任何阶段停止进一步处理?

4

2 回答 2

1

您可以先检查文件是否存在,然后仅在存在时才继续执行其他命令。

if exist file.html (
del file.html
echo  ^<center^>^<a href="abc.html"^>ABC^</a^>^</center^> >> file.html
echo  ^<center^>^<a href="xyz.com"^>XYZ^</a^>^</center^> >> file.html
)
于 2013-01-07T09:14:53.720 回答
1

根据这个问题 -我可以在 DOS 批处理文件中有一个 IF 块吗?- 如果通过分支,DOS 可以做到

if <statement> (
    do something
) else (
    do something else
)

然后从这篇 MS 支持文章中,您可以使用EXISTNOT EXIST处理文件。所以我的猜测是:

if EXIST file.html del file.html

顺便说一句,如果你想在 bash 中执行此操作(通过 Windows 上的 Cygwin),它会更容易,因为 bash 比 DOS 对这些东西有更多的支持:

f="file.html";
if [ -e "$f" ] ; then 
    rm "$f";
fi

您似乎正在逐行将内容附加到文件中。如果这些行中没有进行任何处理,您可以使用 copy 将它们连接起来

copy chunkA.html+chunkB.html+chunkD.html file.html

这提供了显着的好处,您可以将包含数据的文件与将它们拼接在一起的脚本分开。

于 2013-01-07T09:17:39.103 回答