#Del fileName(但文件不可用,那么它会进一步处理还是停止)?

时间:2013-01-07 09:01:59

标签: batch-file batch-processing

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

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但进一步处理以写入文件。我想知道,如果找不到要删除的文件,是否可以在任何阶段停止处理?

2 个答案:

答案 0 :(得分: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
)

答案 1 :(得分:1)

根据这个问题 - Can I have an IF block in DOS batch file? - DOS可以通过

进行分支
if <statement> (
    do something
) else (
    do something else
)

然后从this MS Support article开始,您可以将EXISTNOT EXIST与文件一起使用。所以我的猜测是:

if EXIST file.html del file.html

只是再见,如果你想在bash中做到这一点(通过Windows上的Cygwin),那么由于bash比DOS更多地支持这些东西,这是相当容易的:

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

您似乎是逐行将内容附加到文件中。如果这些行中没有处理,您可以concatenate them using copy

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

这提供了将包含数据的文件与拼接在一起的脚本分开的显着优势。