为什么我的批处理脚本在删除不存在的文件时变得无响应?

时间:2018-06-23 00:26:52

标签: windows batch-file windows-10

我的脚本的第一部分:

@echo off
mode 34,18
color f0
del /s /q /f unsorted_frt.txt >nul 2>nul
del /s /q /f output_frt.txt >nul 2>nul
del /s /q /f frt.txt >nul 2>nul
del /s /q /f datas_futuros_rede_tan.txt >nul 2>nul
del /s /q /f datas_futuros_rede_tan.csv >nul 2>nul
del /s /q /f c:\datas_futuros_rede_tan.csv >nul 2>nul
(etc.)

使用Windows 7可以成功。但是,如果要删除的文件不存在,则.bat文件将忽略此文件并继续执行。我升级到Windows 10,现在,如果要删除的文件不存在,脚本将完全失败。

尽管如此,我仍需要脚本继续。如何在Windows 10上实现该功能?这是当前的样子:

enter image description here

它在此屏幕上停止。如果删除脚本的第一部分,其余部分将正常运行。

2 个答案:

答案 0 :(得分:0)

先前发布的关于问题的答案:

此行 this.user.things.sort(function (a, b) { return a.primary < b.primary ? 1 : a.primary > b.primary ? -1 : 0; }); 中出现了问题,所以我将其更改为del /s /q /f c:\datas_futuros_rede_tan.csv >nul 2>nul,因此,在同一屏幕上停止运行大约2分钟(如上图)后,它开始继续运行。

答案 1 :(得分:0)

通常最好在删除文件之前先测试文件是否存在。

IF EXIST "unsorted_frt.txt" DO (DEL "unsorted.txt")

FOR循环可以帮助删除大量文件。此列表将假定除最后一个文件外的所有文件都在当前工作目录中。如果文件名包含SPACE或其他特殊字符,则需要用引号引起来。

SET FILE_LIST=^
unsorted_frt.txt ^
output_frt.txt ^
frt.txt ^
datas_futuros_rede_tan.txt ^
datas_futuros_rede_tan.csv ^
c:\datas_futuros_rede_tan.csv

FOR %%f IN (%FILE_LIST%) DO (
    IF EXIST "%%~f" DO (DEL "%%~f" >NUL 2>NUL)
)